温馨提示×

Java set去重如何处理集合嵌套

小樊
81
2024-11-27 14:42:15
栏目: 编程语言

在Java中,如果你想在Set中去重处理嵌套集合,可以使用以下方法:

  1. 使用Set<Set<T>>来存储嵌套集合。这样,你可以确保每个内部集合都是唯一的。
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<Set<Integer>> nestedSet = new HashSet<>();

        Set<Integer> set1 = new HashSet<>();
        set1.add(1);
        set1.add(2);
        nestedSet.add(set1);

        Set<Integer> set2 = new HashSet<>();
        set2.add(3);
        set2.add(4);
        nestedSet.add(set2);

        Set<Integer> set3 = new HashSet<>();
        set3.add(1);
        set3.add(2);
        nestedSet.add(set3); // 这个set3会被忽略,因为它与set1重复

        System.out.println(nestedSet);
    }
}
  1. 使用Map<T, Boolean>来存储嵌套集合的元素计数。这样,你可以确保每个元素在嵌套集合中只出现一次。
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Map<Set<Integer>, Boolean> nestedMap = new HashMap<>();

        Set<Integer> set1 = new HashSet<>();
        set1.add(1);
        set1.add(2);
        nestedMap.put(set1, true);

        Set<Integer> set2 = new HashSet<>();
        set2.add(3);
        set2.add(4);
        nestedMap.put(set2, true);

        Set<Integer> set3 = new HashSet<>();
        set3.add(1);
        set3.add(2);
        nestedMap.putIfAbsent(set3, true); // 这个set3会被添加,因为它与set1重复,但不会影响set2

        System.out.println(nestedMap.keySet());
    }
}

这两种方法都可以帮助你在Set中去重处理嵌套集合。你可以根据自己的需求选择合适的方法。

0