1、数组填充
String[] a=new String[3]; Arrays.fill(a,"222"); System.out.println("a="+Arrays.asList(a));//a=[222, 222, 222]
2、数组复制
String[] b=new String[3]; System.arraycopy(a, 0, b, 1, a.length-1);
//System.arraycopy(src, srcPos, dest, destPos, length);
System.out.println("b="+Arrays.asList(b));//b=[null, 222, 222]
3、数组的比较
b[0]="999"; System.out.println("Arrays.equals(a, b)?"+Arrays.equals(a, b));//false
基本数据类型,需要使用基本类型的包装类的equals()方法:
Integer q=3; System.out.println(q.equals(4));//false
4、数组元素的比较
java有两种方式提供比较功能。
(1)实现java.lang.Comparable接口,只有一个comparaTo()方法,一个类CustomClass实现该方法过后可以使用Arrays.sort(c);
public static class CustomClass implements Comparable { @Override public int compareTo(Object arg0) { // TODO Auto-generated method stub return 0; } } { CustomClass[] c=new CustomClass[10]; //初始化c Arrays.sort(c); System.out.println("after Arrays.sort(c),c="+Arrays.asList(c)); }
倒转排序
Arrays.sort(c,Collections.reverseOrder());
(2)Comparator
class CustomComparator1 implements Comparator{ @Override public int compare(Object arg0, Object arg1) { // TODO Auto-generated method stub return 0; } } { CustomClass[] c=new CustomClass[10]; //初始化c Arrays.sort(c,new CustomComparator1()); System.out.println("after Arrays.sort(c),c="+Arrays.asList(c)); }
数组排序(总结)
使用内置的排序方法Arrays.sort(),就可以对任意的基本类型数组排序;
也可以对任意的对象数组进行排序,只要该对象 a.实现了Comparable接口 b.或者具有相关联的Comparator
在已经排序好的数组进行查找
如果数组已经排序好了,就可以使用Arrays.binarySearch()进行快速查找,不能对未排序的数组使用binarySearch()
int position; CustomClass key=new CustomClass(); position=Arrays.binarySearch(c, key); System.out.println(position);
position=Arrays.binarySearch(c, key,new CustomComparator1());