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; }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。