关于数组工具类方法整理

引用:

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"));
 }

你可能感兴趣的:(工具类)