java中的set如何使用
使用 Set 的基本方法
在 Java 中,Set 是一个不包含重复元素的集合接口,常用的实现类有 HashSet、LinkedHashSet 和 TreeSet。以下是基本的使用方法。
创建 Set 实例
Set<String> hashSet = new HashSet<>();
Set<String> linkedHashSet = new LinkedHashSet<>();
Set<String> treeSet = new TreeSet<>();
添加元素
使用 add() 方法添加元素,重复元素不会被添加。
hashSet.add("Apple");
hashSet.add("Banana");
hashSet.add("Apple"); // 不会被添加
检查元素是否存在
使用 contains() 方法检查元素是否在集合中。
boolean hasApple = hashSet.contains("Apple"); // 返回 true
遍历 Set 中的元素
使用迭代器
Iterator<String> iterator = hashSet.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
使用增强 for 循环
for (String element : hashSet) {
System.out.println(element);
}
使用 Java 8 的 forEach

hashSet.forEach(System.out::println);
删除元素
删除单个元素
使用 remove() 方法删除指定元素。
hashSet.remove("Banana");
清空集合
使用 clear() 方法清空所有元素。
hashSet.clear();
Set 的其他常用操作
获取集合大小
使用 size() 方法获取集合中元素的数量。
int size = hashSet.size();
判断集合是否为空
使用 isEmpty() 方法检查集合是否为空。

boolean isEmpty = hashSet.isEmpty();
不同类型的 Set 特性
HashSet
- 基于哈希表实现,无序。
- 插入、删除和查找操作的时间复杂度为 O(1)。
LinkedHashSet
- 基于哈希表和链表实现,保留插入顺序。
- 插入、删除和查找操作的时间复杂度为 O(1)。
TreeSet
- 基于红黑树实现,元素按自然顺序或自定义顺序排序。
- 插入、删除和查找操作的时间复杂度为 O(log n)。
示例代码
以下是一个完整的示例,展示 HashSet 的基本操作:
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
Set<String> fruits = new HashSet<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
System.out.println("Set contains Apple: " + fruits.contains("Apple"));
fruits.remove("Banana");
System.out.println("Set size: " + fruits.size());
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
注意事项
Set不允许重复元素,重复添加同一元素不会改变集合内容。HashSet和LinkedHashSet允许null元素,但TreeSet不允许。- 如果需要排序功能,优先选择
TreeSet;如果需要保留插入顺序,选择LinkedHashSet。






