Arrays的常用功能

来源:互联网 发布:跳舞毯软件 编辑:程序博客网 时间:2024/05/17 00:56
Arrays类有一套用于数组的静态方法,在我们的开发中时常会用到,就《java编程思想》中列举的诸多方法,在这里总结一下,方便自己以后的使用。
  • Arrays.equals():用于比较两个数组是否相等。
  • Arrays.deepEquals():用于比较两个多维数组是否相等。
  • Arrays.fill():用于向数组中填充指定的数值。
Arrays.fill(a, val);  ——向a数组中填充val只直到写满为止。
Arrays.fill(a, fromIndex, toIndex, val);——在a数组fromIndex到 toIndex的区间内填充val值。
  • Arrays.sort():用于对数组的排序。
Arrays.sort(a);——对a数组进行正向排序。
Arrays.sort(a,  comparator);——对数组a按照comparator定义的规则进行排序。
Arrays.sort(a, fromIndex, toIndex);——对a数组fromIndex到 toIndex区间内的值进行正向排序。
Arrays.sort(a, fromIndex, toIndex,comparator);——对a数组fromIndex到 toIndex区间内的值按照comparator定义的规则进行排序。
  • Arrays.binarySearch():使用二分法在已经排序的数组中查找元素,有就返回响应的索引值,没有返回(-插入点-1)
Arrays.binarySearch(a, key);——在数组a中查询是否有key元素
Arrays.binarySearch(a, key,comparator);——在数组a中查询是否有key元素,前提是a数组用comparator进行升序排列。
Arrays.binarySearch(a, fromIndex, toIndex, key);——在a数组fromIndex到 toIndex区间中查询是否有key元素。
Arrays.binarySearch(a, fromIndex, toIndex, key,comparator);——在a数组fromIndex到 toIndex区间中查询是否有key元素,前提是a数组用comparator进行升序排列。
  • Arrays.toString():产生数组的String表示。
  • Arrays.hashCode():产生数组的散列码。
  • Arrays.deepHashCode():用于多维数组产生散列码。
  • Arrays.asList():将任意的序列或数组转变为list
  • System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src:源数组; srcPos:源数组要复制的起始位置; dest:目的数组; destPos:目的数组放置的起始位置; length:复制的长度。
char[] c1 = new String("123456").toCharArray();          char[] c2 = new String("abcdef").toCharArray();          System.arraycopy(c1,2 , c2, 1, 2);          for(char c : c1){              System.out.print(c);          }          System.out.println();          for(char c : c2){              System.out.print(c);          }  //结果:123456 a34def

值得注意的一点是系统提供的这种复制方式只是一种浅复制(复制对象数组是只会复制对象的引用),而不是对象本身的拷贝。

  • arraycopy()需要目标数组,将原数组拷贝到你自己定义的数组里,而且可以选择拷贝的起点和长度以及放入新数组中的位置
  • copyOf()是系统自动在内部新建一个数组,调用arraycopy()将original内容复制到copy中去,并且长度为newLength。返回copy; 即将原数组拷贝到一个长度为newLength的新数组中,并返回该数组。
  • Array.copyOf()可以看作是受限的System.arraycopy(),它主要是用来将原数组全部拷贝到一个新长度的数组,适用于数组扩容。
原创粉丝点击