使用 set 从 arraylist 中删除重复项

Removing duplicates from arraylist using set

有 2 组重复 set1 ={1,2,3,4,5} set2 = {1,3,6,7} 结果应该是 set3 ={2,4,5,6,7} 请让我重申一下,我想使用Set接口并且结果集应该是自然排序的。

你可以试试这个 -

Set set1, set2;
Set newSet = new HashSet(set1);
newSet.addAll(set2);
  • 找到交集
  • 找到工会
  • 并集减去交集

代码:

 public static void main(String[] args) {

    Set<Integer> set1 = new HashSet<Integer>(Arrays.asList(1, 2, 3, 4, 5));
    Set<Integer> set2 = new HashSet<Integer>(Arrays.asList(1, 3, 6, 7));

    Set<Integer> intersection = new HashSet<Integer>(set1);
    intersection.retainAll(set2);

    // set1 is now the union of set1 and set2
    set1.addAll(set2);

    // set1 is now (union - intersection)
    // All elements in set1 or set2, but not in both set1 & set2
    set1.removeAll(intersection);

    for(Integer n : set1) {
        System.out.println(n);
    }
}

输出:

2
4
5
6
7