# Java 初学者的`Set`教程 > 原文: [https://javabeginnerstutorial.com/core-java-tutorial/set-collection-tutorial-for-java-beginners/](https://javabeginnerstutorial.com/core-java-tutorial/set-collection-tutorial-for-java-beginners/) `Set`是 Java 集合框架的一部分。 `Set`是`java.util`程序包中的一个接口。 它实现了`Collection`接口。 # 与集有关的要点 * 它不包含重复的元素。 * 一些`Set`实现对`NULL`元素有限制。 # `Set`接口的具体实现 * `HashSet` * `LinkedHashSet` * `TreeSet` * `EnumSet` # 设置界面中的重要方法 此接口不包含任何特殊方法。 它仅继承`Collection`接口的所有方法。 # `HashSet` * 此类是 Java 集合框架的一部分。 * 此类实现`Set`接口。 * 它由哈希表支持。 * 它是无序的。 (随着时间的推移,订单不可预测) * 基本操作(如添加,删除,包含和大小)的恒定时间性能。 * 它不同步。 * `Iterator`方法返回的迭代器为快速失败。 ## 构造器 * **`HashSet(Collection c)`**:构造一个新集合,其中包含指定集合中的元素。 * **`HashSet(int initialCapacity, float loadFactor)`**:构造一个新的空集; 支持的`HashMap`实例具有指定的初始容量和指定的负载系数。 * **`HashSet(int initialCapacity)`**:构造一个新的空集。 # `LinkedHashSet` * 元素的顺序是可预测的。 * 它维护遍历所有条目的双链表。 * 元素的顺序将与插入顺序相同。 * 它允许`NULL`值。 * 与`HashSet`一样,它为基本操作提供恒定的时间性能。 * 链接列表上的迭代时间与大小成正比。 * 初始容量和负载因子决定`LinkedHashSet`的性能。 * 它不同步。 * 此类的`Iterator`方法返回的迭代器为快速失败。 ## 构造器 * **`LinkedHashSet(int initialCapacity, float loadFactor)`**:构造一个具有指定初始容量和负载因子的新的空链接哈希集。 * **`LinkedHashSet(int initialCapacity)`**:构造一个新的,空的,具有指定初始容量和默认加载因子 0.75 的链接哈希集。 * **`LinkedHashSet()`**:构造一个新的空链接哈希集,默认初始容量为 16,负载因子为 0.75。 * **`LinkedHashSet(Collection c)`**:构造一个新的链接哈希集,其元素与指定的集合相同。