引用:
java.util.Arrays
org.apache.commons.lang.ArrayUtils
/**
* 对两国数组的内容进行比较。判断两个数组内容是否相同
* Arrays.equals
* ArrayUtils.isEquals
* @param s
* @param a
*/
public static void same(Object[] s,Object[] a){
System.out.println(Arrays.equals(a, s));
System.out.println(ArrayUtils.isEquals(a, s));
System.out.println(Arrays.deepEquals(a, s));
}
/**
* 显示数组内容,string对象
* Arrays.toString
* ArrayUtils.toString
* 不同:[123, 2321, sfs],{123,2321,sfs}
* @param a
*/
public static void toString(Object[] a){
System.out.println(Arrays.toString(a));
System.out.println(ArrayUtils.toString(a));
System.out.println(Arrays.deepToString(a));
}
/**
* 取哈西码
* Arrays.hashCode
* ArrayUtils.hashCode
* 值不同
* @param a
*/
public static void hasCode(Object[] a){
System.out.println(Arrays.hashCode(a));
System.out.println(Arrays.deepHashCode(a));
System.out.println(ArrayUtils.hashCode(a));
}
/**
* 取子数组,复制
* Arrays.copyOf默认从0开始的,end index
* ArrayUtils.subarray选择起始index,end index
* Arrays.copyOfRange 选择起始index,end index
* ArrayUtils.clone复制数组a内容并返回新的数组
* @param a
* @param length
*/
public static void copy(Object[] a,int length){
System.out.println(Arrays.toString(Arrays.copyOf(a, length)));
System.out.println(ArrayUtils.toString(ArrayUtils.subarray(a, 0, 2)));
System.out.println(Arrays.toString(Arrays.copyOfRange(a, 1, 2)));
System.out.println(Arrays.toString(ArrayUtils.clone(a)));
}
/**
* 数组的增,删,查操作
* Arrays.fill向数组插入指定值,所有都是该值
* ArrayUtils.add向数组插入指定,并形成新数组返回,原数组不变
* ArrayUtils.addAll向数组a插入数组b的值,并形成新数组返回,原数组不变
* ArrayUtils.remove删除指定数组指定下标的值,并形成新数组返回,原数组不变
* ArrayUtils.removeElement删除指定数组指定内容的值,并形成新数组返回,原数组不变
*/
public static void operat(Object[] a){
// Arrays.fill(a, 1);
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(ArrayUtils.add(a, 2)));
System.out.println(Arrays.toString(ArrayUtils.addAll(a, new Object[]{2,3,5,"es"})));
System.out.println(Arrays.toString(ArrayUtils.remove(a, 1)));
System.out.println(Arrays.toString(ArrayUtils.removeElement(a, "11")));
}
/**
* 集合转换
* 转list:Arrays.asList 返回一个list值可重复
* 转map:ArrayUtils.toMap返回一个map,值不可重复且数组格式如:new Object[]{new Object[]{1,1},new Object[]{1,2}}
*/
public static void toCollect(Object[] a){
List l = Arrays.asList(a);
StringBuffer s = new StringBuffer("");
for(Object o:l){
s.append(o+" ");
}
System.out.println(s.toString());
Object[] b = new Object[]{new Object[]{1,1},new Object[]{1,2}};
Map m = ArrayUtils.toMap(b);
s = new StringBuffer("");
for(Object k:m.keySet()){
s.append(k+";"+m.get(k)+" ");
}
System.out.println(s.toString());
}
/**
* 数组排序
* Arrays.sort按照Ascc码升序
* Arrays.binarySearch查找某个值在数组中的index
* ArrayUtils.reverse将数组顺序反过来
*/
public static void sort(Integer[] a){
Arrays.sort(a);
System.out.println(Arrays.toString(a));
System.out.println(Arrays.binarySearch(a, 3));
ArrayUtils.reverse(a);
System.out.println(Arrays.toString(a));
}
/**
* 内部值检查
* 1,是否为空
* 2,长度是否相同
* 3,类型是否相同
* 4,是否包含某个值
*/
public static void contents(Object[] a,Object[] b){
System.out.println(ArrayUtils.isSameLength(a, b));
System.out.println(ArrayUtils.isSameType(a, b));
System.out.println(ArrayUtils.isEmpty(a));
System.out.println(ArrayUtils.contains(a, "sfs"));
}