您是否关心重复计数?例如,您是否需要区分
{ 1, 1, 2 }和
{ 1, 2, 2 }?如果没有,请使用
HashSet:
public static boolean compareArrays(Integer[] arr1, Integer[] arr2) { HashSet<Integer> set1 = new HashSet<Integer>(Arrays.asList(arr1)); HashSet<Integer> set2 = new HashSet<Integer>(Arrays.asList(arr2)); return set1.equals(set2);}
如果你 做 对重复护理,那么要么你可以使用一个
Multiset从番石榴。
如果要坚持使用排序版本,为什么不使用内置的排序算法而不是编写自己的算法呢?
编辑:如果您愿意修改现有数组,甚至不需要创建副本。例如:
public static boolean compareArrays(Integer[] arr1, Integer[] arr2) { Arrays.sort(arr1); Arrays.sort(arr2); return Arrays.equals(arr1, arr2);}
您还可以针对数组长度不同的情况进行优化:
public static boolean compareArrays(Integer[] arr1, Integer[] arr2) { // TODO: Null validation... if (arr1.length != arr2.length) { return false; } Arrays.sort(arr1); Arrays.sort(arr2); return Arrays.equals(arr1, arr2);}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)