50.md 2.4 KB
Newer Older
W
wizardforcel 已提交
1
# Java 初学者的`Set`教程
W
init  
wizardforcel 已提交
2 3 4

> 原文: [https://javabeginnerstutorial.com/core-java-tutorial/set-collection-tutorial-for-java-beginners/](https://javabeginnerstutorial.com/core-java-tutorial/set-collection-tutorial-for-java-beginners/)

W
wizardforcel 已提交
5
`Set`是 Java 集合框架的一部分。 `Set``java.util`程序包中的一个接口。 它实现了`Collection`接口。
W
init  
wizardforcel 已提交
6

W
wizardforcel 已提交
7
# 与集有关的要点
W
init  
wizardforcel 已提交
8 9

*   它不包含重复的元素。
W
wizardforcel 已提交
10
*   一些`Set`实现对`NULL`元素有限制。
W
init  
wizardforcel 已提交
11

W
wizardforcel 已提交
12
# `Set`接口的具体实现
W
init  
wizardforcel 已提交
13

W
wizardforcel 已提交
14 15 16 17
*   `HashSet`
*   `LinkedHashSet`
*   `TreeSet`
*   `EnumSet`
W
init  
wizardforcel 已提交
18 19 20

# 设置界面中的重要方法

W
wizardforcel 已提交
21
此接口不包含任何特殊方法。 它仅继承`Collection`接口的所有方法。
W
init  
wizardforcel 已提交
22

W
wizardforcel 已提交
23
# `HashSet`
W
init  
wizardforcel 已提交
24

W
wizardforcel 已提交
25 26
*   此类是 Java 集合框架的一部分。
*   此类实现`Set`接口。
W
init  
wizardforcel 已提交
27 28 29 30
*   它由哈希表支持。
*   它是无序的。 (随着时间的推移,订单不可预测)
*   基本操作(如添加,删除,包含和大小)的恒定时间性能。
*   它不同步。
W
wizardforcel 已提交
31
*   `Iterator`方法返回的迭代器为快速失败。
W
init  
wizardforcel 已提交
32

W
wizardforcel 已提交
33
## 构造器
W
init  
wizardforcel 已提交
34

W
wizardforcel 已提交
35
*   **`HashSet(Collection<? extends E> c)`**:构造一个新集合,其中包含指定集合中的元素。
W
wizardforcel 已提交
36
*   **`HashSet(int initialCapacity, float loadFactor)`**:构造一个新的空集; 支持的`HashMap`实例具有指定的初始容量和指定的负载系数。
W
wizardforcel 已提交
37
*   **`HashSet(int initialCapacity)`**:构造一个新的空集。
W
init  
wizardforcel 已提交
38

W
wizardforcel 已提交
39
# `LinkedHashSet`
W
init  
wizardforcel 已提交
40 41 42 43

*   元素的顺序是可预测的。
*   它维护遍历所有条目的双链表。
*   元素的顺序将与插入顺序相同。
W
wizardforcel 已提交
44 45
*   它允许`NULL`值。
*`HashSet`一样,它为基本操作提供恒定的时间性能。
W
init  
wizardforcel 已提交
46
*   链接列表上的迭代时间与大小成正比。
W
wizardforcel 已提交
47
*   初始容量和负载因子决定`LinkedHashSet`的性能。
W
init  
wizardforcel 已提交
48
*   它不同步。
W
wizardforcel 已提交
49
*   此类的`Iterator`方法返回的迭代器为快速失败。
W
init  
wizardforcel 已提交
50

W
wizardforcel 已提交
51
## 构造器
W
init  
wizardforcel 已提交
52

W
wizardforcel 已提交
53 54 55 56
*   **`LinkedHashSet(int initialCapacity, float loadFactor)`**:构造一个具有指定初始容量和负载因子的新的空链接哈希集。
*   **`LinkedHashSet(int initialCapacity)`**:构造一个新的,空的,具有指定初始容量和默认加载因子 0.75 的链接哈希集。
*   **`LinkedHashSet()`**:构造一个新的空链接哈希集,默认初始容量为 16,负载因子为 0.75。
*   **`LinkedHashSet(Collection<? extends  E> c)`**:构造一个新的链接哈希集,其元素与指定的集合相同。