java数组d的填充、复制、比较排序

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());
原文地址:https://www.cnblogs.com/sunupo/p/10474834.html