关于数组工具类方法整理
引用:
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"));
?}