我现在想实现两个数组的比较,应该用什么方式比较效率比较高啊?

解决方案 »

  1.   

    数组的比较,除了先比较数组长度外,必然是遍历整个数组,并一一比较对应的元素。至于遍历的顺序,除非数组的元素分布有特别之处,否则没有什么区别。顺序或者逆序都可以。
    boolean equals(int[] array1,int[] array2)
    {
       if(array1.length!=array2.length)
            return false;
       for(int i=0;i<array1.length;i++)
           if (array1.[i]!=array2.[i])
               return false;
       return true;
    }
      

  2.   

    不用楼上的这么麻烦,
    Arrays.equals(array1,array2)就ok了
      

  3.   

    看一下equals的源码:
    public static boolean equals(Object[] a, Object[] a2) {
            if (a==a2)
                return true;
            if (a==null || a2==null)
                return false;        int length = a.length;
            if (a2.length != length)
                return false;        for (int i=0; i<length; i++) {
                Object o1 = a[i];
                Object o2 = a2[i];
                if (!(o1==null ? o2==null : o1.equals(o2)))
                    return false;
            }        return true;
        }
      

  4.   

    放到hashset里,循环判断是否contains,输出重复的结果
    效率基本上都差不多的吧,二重循环肯定要的