1. 程式人生 > >java數組d的填充、復制、比較排序

java數組d的填充、復制、比較排序

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
            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());

java數組d的填充、復制、比較排序