Java 集合框架提供了多种集合接口和类,其中 Set
接口是一个非常重要的接口,用于存储不重复的元素集合。本文将详细探讨 Set
接口及其两个主要实现类:HashSet
和 TreeSet
。
Set 接口概述
Set
接口继承自 Collection
接口,表示一个不包含重复元素的集合。与 List
不同,Set
没有提供按位置访问元素的方法,而是专注于保证集合中元素的唯一性。以下是 Set
接口的一些关键方法:
boolean add(E e)
: 如果元素不存在于集合中,则添加该元素。boolean remove(Object o)
: 从集合中移除指定元素。boolean contains(Object o)
: 如果集合包含指定元素,则返回true
。int size()
: 返回集合中的元素数量。void clear()
: 移除集合中的所有元素。
HashSet
HashSet
是 Set
接口的一个常见实现类,基于哈希表实现。它具有以下特点:
- 无序性:
HashSet
不保证集合中元素的顺序,这意味着元素的迭代顺序可能与插入顺序不同。 - 哈希表:
HashSet
使用哈希表来存储元素,因此插入、删除和查找操作的时间复杂度为 O(1)。 - 唯一性:
HashSet
使用元素的hashCode()
和equals()
方法来确保集合中不包含重复元素。
使用示例
import java.util.HashSet;
import java.util.Set;
public class HashSetExample {
public static void main(String[] args) {
Set<String>