Java中如何查找两个数组中的相同元素呢?
下文讲述使用Java代码查找两个数组中相同元素的方法分享,如下所示:
方式1:使用多次遍历进行查找比对
public static list<Integer> findSame(int[] arr1, int[] arr2) { List<Integer> list = new ArrayList<>(); if (arr1 == null || arr2 == null || arr1.length == 0 || arr2.length == 0) { return list; } for(int i=0;i<arr1.length;i++) { for(int j=0;j<arr2.length;j++) if(arr1[i]==arr2[j]) { list.add(arr1[i]); } } return list; }
方式2:先排序然后再遍历比对
实现思路:
1.数组排序
2.遍历数组元素,比较两个数组中的元素
谁的元素小,则向前加1,然后再次比对
当任意一个数组比对完毕,则运算结束
public static List<Integer> findCommon(int[] arr1, int[] arr2) {
List<Integer> list = new ArrayList<>();
if (arr1 == null || arr2 == null || arr1.length == 0 || arr2.length == 0) {
return list;
}
Arrays.sort(arr1);
Arrays.sort(arr2);
int i = 0, j = 0;
while ( i < arr1.length && j < arr2.length ) {
if (arr1[i] == arr2[j]) {
list.add(arr1[i]);
i++;
j++;
}
else if (arr1[i] < arr2[j]) i++;
else j++;
}
return list;
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


