Java - 从两个ArrayLists / Array中查找重复项的优化方法

时间:2012-01-22 04:08:42

标签: java

我有两个整数的数组/数组列表。我想知道从两个中找到重复项并将其存储到第三个中的优化方法。

Array1 = {1,2,3,6,9,10,15,4};  
Array2 = {4,8,6,5,12,14,1,2,9};  
Result Array= {1,2,3,6,9,10,15,4,8,5,12,14,9}

此致 Android IT

4 个答案:

答案 0 :(得分:2)

我更喜欢使用Set而不是HashMap,因为HashMap需要key-value&设置谈论 UNIQUENESS 设置不允许重复...

答案 1 :(得分:1)

将两个数组的元素添加到HashMap中,其中值是元素出现的次数。然后将其输出到数组。

答案 2 :(得分:1)

你的意思是,一个联盟?

List<Integer> array1 = Arrays.asList(1,2,3,6,9,10,15,4);
Set<Integer> set1 = new HashSet<Integer>(array1);

List<Integer> array2 = Arrays.asList(4,8,6,5,12,14,1,2,9);
Set<Integer> set2 = new HashSet<Integer>(array2);

set1.addAll(set2);
List<Integer> resultArray = new ArrayList<Integer>(set1);

现在resultArray包含

[1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 15]

答案 3 :(得分:0)

有效的方法,对数组进行排序(O(n log n))并迭代两个数组中的最低数据,只有在两者中都选择它(O(n)),否则丢弃。