新聞中心
LinkedHashSet

二道江網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),二道江網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為二道江成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的二道江做網(wǎng)站的公司定做!
java.lang.Object
|---java.util.AbstractCollection
|---|---java.util.AbstractSet
|---|---|---java.util.HashSet
|---|---|---|---java.util.LinkedHashSet
public class LinkedHashSet
extends HashSet
implements Set, Cloneable, Serializable Set 接口的哈希表和鏈表實(shí)現(xiàn),具有可預(yù)測(cè)的迭代順序。 此實(shí)現(xiàn)與 HashSet 的不同之處在于它維護(hù)一個(gè)雙向鏈表,該列表貫穿其所有條目。 該鏈表定義了迭代順序,即元素插入集合的順序(插入順序)。 請(qǐng)注意,如果將元素重新插入集合中,則插入順序不受影響。 (如果 s.add(e) 被調(diào)用,而 s.contains(e) 將在調(diào)用之前立即返回 true,則元素 e 被重新插入到集合 s 中。)
此實(shí)現(xiàn)使其客戶免于 HashSet 提供的未指定、通?;靵y的排序,而不會(huì)增加與 TreeSet 相關(guān)的成本。 它可用于生成與原始集合具有相同順序的集合的副本,而不管原始集合的實(shí)現(xiàn)如何:
void foo(Set s) {
Set copy = new LinkedHashSet(s);
...
}如果模塊在輸入上獲取一個(gè)集合,復(fù)制它,然后返回其順序由復(fù)制的順序確定的結(jié)果,則此技術(shù)特別有用。 (客戶通常喜歡以與呈現(xiàn)相同的順序返回物品。)
此類提供所有可選的 Set 操作,并允許 null 元素。 與 HashSet 一樣,它為基本操作(添加、包含和刪除)提供恒定時(shí)間性能,假設(shè)哈希函數(shù)在桶中正確地分散元素。 由于維護(hù)鏈表的額外費(fèi)用,性能可能略低于 HashSet,但有一個(gè)例外:迭代 LinkedHashSet 所需的時(shí)間與集合的大小成正比,而不管其容量如何。 HashSet 的迭代可能會(huì)更昂貴,需要的時(shí)間與其容量成正比。
鏈接哈希集有兩個(gè)影響其性能的參數(shù):初始容量和負(fù)載因子。 它們的定義與 HashSet 一樣。 但是請(qǐng)注意,對(duì)于此類而言,為初始容量選擇過高值的懲罰不如 HashSet 嚴(yán)重,因?yàn)榇祟惖牡鷷r(shí)間不受容量的影響。
請(qǐng)注意,此實(shí)現(xiàn)不同步。 如果多個(gè)線程同時(shí)訪問一個(gè)鏈接的哈希集,并且至少有一個(gè)線程修改了該集,則它必須在外部同步。 這通常是通過在一些自然封裝集合的對(duì)象上同步來完成的。 如果不存在這樣的對(duì)象,則應(yīng)使用 Collections#synchronizedSet 方法“wrapped”該集合。 這最好在創(chuàng)建時(shí)完成,以防止對(duì)集合的意外不同步訪問:
Set s = Collections.synchronizedSet(new LinkedHashSet(...));此類的迭代器方法返回的迭代器是快速失敗的:如果在創(chuàng)建迭代器后的任何時(shí)間修改集合,除了通過迭代器自己的 remove 方法之外,迭代器將拋出 ConcurrentModificationException。 因此,面對(duì)并發(fā)修改,迭代器快速而干凈地失敗,而不是在未來不確定的時(shí)間冒任意的、非確定性的行為。
請(qǐng)注意,不能保證迭代器的快速失敗行為,因?yàn)橐话銇碚f,在存在不同步的并發(fā)修改的情況下,不可能做出任何硬保證。 快速失敗的迭代器會(huì)盡最大努力拋出 ConcurrentModificationException。 因此,編寫一個(gè)依賴于這個(gè)異常的正確性的程序是錯(cuò)誤的:迭代器的快速失敗行為應(yīng)該只用于檢測(cè)錯(cuò)誤。
此類是 Java 集合框架的成員。
構(gòu)造函數(shù)摘要
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| LinkedHashSet() | 使用默認(rèn)初始容量 (16) 和加載因子 (0.75) 構(gòu)造一個(gè)新的空鏈接哈希集。 |
| LinkedHashSet(int initialCapacity) | 使用指定的初始容量和默認(rèn)加載因子 (0.75) 構(gòu)造一個(gè)新的空鏈接哈希集。 |
| LinkedHashSet(int initialCapacity, float loadFactor) | 使用指定的初始容量和負(fù)載因子構(gòu)造一個(gè)新的空鏈接哈希集。 |
| LinkedHashSet(Collection extends E> c) | 使用與指定集合相同的元素構(gòu)造一個(gè)新的鏈接哈希集。 |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| SpliteratorE | spliterator() | 在此集合中的元素上創(chuàng)建一個(gè)后期綁定和快速失敗的拆分器。 |
| 從類 java.util.AbstractCollection 繼承的方法 |
|---|
| addAll, containsAll, retainAll, toArray, toArray, toString |
| 從類 java.util.AbstractSet 繼承的方法 |
|---|
| equals, hashCode, removeAll |
| 從接口 java.util.Collection 繼承的方法 |
|---|
| parallelStream, removeIf, stream |
| 從類 java.util.HashSet 繼承的方法 |
|---|
| add, clear, clone, contains, isEmpty, iterator, remove, size |
| 從接口 java.lang.Iterable 繼承的方法 |
|---|
| forEach |
| 從類 java.lang.Object 繼承的方法 |
|---|
| finalize, getClass, notify, notifyAll, wait, wait, wait |
| 從接口 java.util.Set 繼承的方法 |
|---|
| add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray |
構(gòu)造函數(shù)詳細(xì)信息
LinkedHashSet
public LinkedHashSet(int initialCapacity, float loadFactor)
使用指定的初始容量和負(fù)載因子構(gòu)造一個(gè)新的空鏈接哈希集。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| initialCapacity | 鏈接哈希集的初始容量 |
| loadFactor | 鏈接哈希集的負(fù)載因子 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果初始容量小于零,或者負(fù)載因子為非正數(shù) |
LinkedHashSet
public LinkedHashSet(int initialCapacity)
使用指定的初始容量和默認(rèn)加載因子 (0.75) 構(gòu)造一個(gè)新的空鏈接哈希集。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| initialCapacity | LinkedHashSet 的初始容量 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IllegalArgumentException | 如果初始容量小于零 |
LinkedHashSet
public LinkedHashSet()
使用默認(rèn)初始容量 (16) 和加載因子 (0.75) 構(gòu)造一個(gè)新的空鏈接哈希集。
LinkedHashSet
public LinkedHashSet(Collection extends E> c)
使用與指定集合相同的元素構(gòu)造一個(gè)新的鏈接哈希集。 鏈接哈希集的初始容量足以容納指定集合中的元素和默認(rèn)加載因子 (0.75)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| c | 將其元素放入此集合的集合 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果指定的集合為空 |
方法詳情
spliterator
public SpliteratorE spliterator()
在此集合中的元素上創(chuàng)建一個(gè)后期綁定和快速失敗的拆分器。
Spliterator 報(bào)告 Spliterator#SIZED、Spliterator#DISTINCT 和 ORDERED。 實(shí)施應(yīng)記錄附加特征值的報(bào)告。
指定者:
接口 CollectionE 中的分離器
指定者:
接口 IterableE 中的分離器
指定者:
接口 SetE 中的分離器
覆蓋:
HashSetE 類中的拆分器
返回:
此集合中元素的拆分器
網(wǎng)頁名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSLinkedHashSet
地址分享:http://fisionsoft.com.cn/article/djigjpo.html


咨詢
建站咨詢
