Set 接口是 Java 集合框架中的一种数据结构,它表示一个不包含重复元素的集合。与 List 接口不同,Set 接口中的元素没有特定的顺序。
以下是一些 Set 接口的常见实现类:
HashSet
: 使用哈希表实现,提供快速的插入、删除和查找操作。不保证元素的顺序。TreeSet
: 使用红黑树(自平衡二叉搜索树)实现,按照元素的自然顺序进行排序,或者通过提供的比较器进行排序。LinkedHashSet
: 使用链表和哈希表实现,维护元素的插入顺序,性能略低于HashSet
,但迭代遍历时有更好的性能。
下面是一个简单示例代码,展示如何使用HashSet
和TreeSet
:
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class SetExample {
public static void main(String[] args) {
// 使用 HashSet
Set<String> hashSet = new HashSet<>();
hashSet.add("元素1");
hashSet.add("元素2");
hashSet.add("元素3");
System.out.println("HashSet 中的元素:");
for (String element : hashSet) {
System.out.println(element);
}
// 使用 TreeSet
Set<Integer> treeSet = new TreeSet<>();
treeSet.add(5);
treeSet.add(2);
treeSet.add(8);
System.out.println("TreeSet 中的元素:");
for (Integer element : treeSet) {
System.out.println(element);
}
}
}
在上面的示例中,我们首先创建了一个HashSet
实例,并使用add
方法向集合中添加一些元素。然后,我们使用增强型的for
循环遍历了HashSet
中的所有元素,并将它们打印出来。
接下来,我们创建了一个TreeSet
实例,并向其中添加一些整数元素。由于TreeSet
会对元素进行排序,所以在遍历时,元素按照自然顺序(数字大小)进行输出。