package com.cku.util; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayUtils { public static boolean contains(T[] arr, T object) { for (int i = 0; i < arr.length; ++i) { if (arr[i].equals(object)) return true; } return false; } public static int indexOf(T[] arr, T object) { for (int i = 0; i < arr.length; ++i) { if (arr[i].equals(object)) return i; } return -1; } public static T firstOrDefault(List list) { if (list == null || list.size() == 0) { return null; } return list.get(0); } /** * 判断数组是否为空 * @param array * @return */ public static boolean isNullOrEmpty(Object[] array) { if(array == null || array.length == 0) { return true; } return false; } /** * 判断两个字符串数组内容是否完全相同 * 注:两个数组不能为空 * @param array1 * @param array2 * @return */ public static boolean equals(String[] array1, String[] array2) { if(!isNullOrEmpty(array1) && !isNullOrEmpty(array2) && array1.length == array2.length) { int len = array1.length; for(int i = 0 ; i < len ; i ++) { if(array1[i] == null && array2[i] != null) { return false; }else if(array1[i] != null && array2[i] == null) { return false; }else if(array1[i] != null && array2[i] != null && !array1[i].equals(array2[i])) { return false; } } return true; } return false; } public static String[] splitString(String string, String regex, String[] defValue) { if (string == null || string.length() == 0) { return defValue; } return string.split(regex); } private static T[] _removeRepeats(T[] array) { List list = new ArrayList(); for (int i = 0; i < array.length; i++) { if (!list.contains(array[i])) {//如果list数组不包括num[i]中的值的话,就返回true。 list.add(array[i]); //在list数组中加入num[i]的值。已经过滤过。 } } return (T[])list.toArray(array); } public static String[] splitStringNoRepeat(String string, String regex) { String[] ret = string.split(regex); return _removeRepeats(ret); } public static String[] splitStringNoRepeat(String string, String regex, String[] defValue) { String[] ret = defValue; if (string != null && string.length() > 0) { ret = string.split(regex); } return _removeRepeats(ret); } public static List listFromSingle(T obj) { ArrayList arr = new ArrayList(); arr.add(obj); return arr; } public static List parseLong(List list) { ArrayList l = new ArrayList(); for (Iterator it = list.iterator(); it.hasNext();) { String s = it.next(); l.add(Long.parseLong(s)); } return l; } public static Long[] parseLong(String[] list) { Long[] l = new Long[list.length]; for (int i = 0; i < list.length; ++i) { String s = list[i]; l[i] = Long.parseLong(s); } return l; } public static Long[] splitLong(String str, String regex, Long[] defValue) { if (str == null || str.length() == 0) { return defValue; } String[] strArr = str.split(regex); return parseLong(strArr); } public static T[] toArray(List list) { T[] arr = null; return list.toArray(arr); } public static T[] addUniqueArray(T[] arr, T object) { ArrayList list = new ArrayList(); for (int i = 0; i < arr.length; ++i) { if (arr[i].equals(object)) { return arr; } list.add(arr[i]); } list.add(object); return list.toArray(arr); } public static T[] addUniqueArraySQL(T[] arr, T object) { ArrayList list = new ArrayList(); for (int i = 0; i < arr.length; ++i) { if (arr[i].equals(object) || arr[i].equals("*")) { return arr; } list.add(arr[i]); } list.add(object); return list.toArray(arr); } public static List fromObject(T obj) { ArrayList ar = new ArrayList(); ar.add(obj); return ar; } }