java如何定义set
定义 Set 的基本方法
在 Java 中,Set 是一个不包含重复元素的集合接口,常用实现类包括 HashSet、LinkedHashSet 和 TreeSet。以下是定义 Set 的常见方式:
// 使用 HashSet(无序)
Set<String> hashSet = new HashSet<>();
// 使用 LinkedHashSet(保持插入顺序)
Set<String> linkedHashSet = new LinkedHashSet<>();
// 使用 TreeSet(自然排序或自定义排序)
Set<String> treeSet = new TreeSet<>();
初始化时添加元素
可以通过静态方法 Set.of()(Java 9+)或双括号初始化方式快速添加元素:

// Java 9+ 的不可变 Set
Set<String> immutableSet = Set.of("A", "B", "C");
// 双括号初始化(可修改)
Set<String> mutableSet = new HashSet<>() {{
add("Apple");
add("Banana");
}};
指定泛型类型
可以为 Set 指定具体类型,例如存储整数或自定义对象:

Set<Integer> numbers = new HashSet<>();
numbers.add(1);
Set<CustomObject> customSet = new TreeSet<>(Comparator.comparing(CustomObject::getId));
使用 TreeSet 的排序功能
TreeSet 可以通过 Comparator 实现自定义排序:
Set<String> sortedSet = new TreeSet<>((a, b) -> b.compareTo(a)); // 降序
sortedSet.add("Zebra");
sortedSet.add("Apple"); // 自动排序为 ["Zebra", "Apple"]
线程安全的 Set
使用 Collections.synchronizedSet() 包装或并发集合类:
Set<String> syncSet = Collections.synchronizedSet(new HashSet<>());
// 或者使用 ConcurrentHashMap 的 KeySet
Set<String> concurrentSet = ConcurrentHashMap.newKeySet();






