• 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());
  • 相关阅读:
    BZOJ3193: [JLOI2013]地形生成
    ARG102E:Stop. Otherwise...
    51NOD1847:奇怪的数学题
    大型大常数多项式模板(已卡常...)
    CF932G Palindrome Partition
    51nod1538:一道难题(常系数线性递推/Cayley-Hamilton定理)
    HTML——meta标签
    HTTP 格式
    Node.js——Async
    设计模式——外观模式
  • 原文地址:https://www.cnblogs.com/sunupo/p/10474834.html
Copyright © 2020-2023  润新知