java數組d的填充、復制、比較排序
阿新 • • 發佈:2019-03-05
rev obj key 數據類型 src com position out length
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 return0; } } { 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());
java數組d的填充、復制、比較排序