基于哈希表实现,不允许重复元素的无序集合
HashSet 基于哈希表实现,添加、删除、查询的时间复杂度都是 O(1)。元素无序,不重复。
import java.util.HashSet;
import java.util.Set;
Set<String> cities = new HashSet<>();
// 添加元素
cities.add("北京");
cities.add("上海");
cities.add("广州");
cities.add("北京"); // 重复元素,不会被添加
System.out.println("城市数量: " + cities.size()); // 输出 3
// 遍历 Set
for (String city : cities) {
System.out.println(city); // 顺序不固定
}
// 判断是否存在
boolean hasBeijing = cities.contains("北京"); // true
1. 不允许重复:依赖 equals() 和 hashCode() 判断重复
2. 无序:不保证插入顺序
3. 查询快:O(1) 时间复杂度
4. 允许 null 元素(只能有一个)
Set set = new HashSet<>();
set.add("A");
set.add("B");
set.add("A");
System.out.println(set.size());