欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java集合框架之LinkedHashSet類解讀

 更新時(shí)間:2023年09月04日 10:27:24   作者:@六便士  
這篇文章主要介紹了Java集合框架之LinkedHashSet類解讀,LinkedHashSet是HashSet的有序版本,它跨所有元素維護(hù)一個(gè)雙向鏈接的List,當(dāng)需要維護(hù)迭代順序時(shí),就使用這個(gè)類,當(dāng)遍歷HashSet時(shí),順序是不可預(yù)測(cè)的,需要的朋友可以參考下

一、LinkedHashSet 類的介紹

LinkedHashSet是HashSet的 有序版本 ,它跨所有元素維護(hù)一個(gè)雙向鏈接的List。

  • 當(dāng)需要 維護(hù)迭代順序時(shí) ,就使用這個(gè)類。
  • 當(dāng)遍歷HashSet時(shí),順序是不可預(yù)測(cè)的,而LinkedHashSet允許我們按插入元素的順序遍歷元素。
  • 當(dāng)使用迭代器循環(huán)使用LinkedHashSet時(shí),元素將按插入的順序返回。

LinkedHashSet的層次結(jié)構(gòu)如下:

在這里插入圖片描述

LinkedHashSet類聲明:

public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, Serializable  

LinkedHashSet類的要點(diǎn)如下:

  • LinkedHashSet類只包含HashSet這樣的唯一元素。
  • LinkedHashSet類提供了所有可選的集操作,并允許有空元素。
  • LinkedHashSet類是非同步的。
  • LinkedHashSet類維護(hù)插入順序。

Java LinkedHashSet類的構(gòu)造函數(shù)

ConstructorDescription
HashSet()它用于構(gòu)造一個(gè)默認(rèn)的HashSet。
HashSet(Collection c)它使用集合c中的元素來(lái)初始化散列集。
LinkedHashSet(int capacity)它用于將鏈接哈希集的容量初始化為給定的整數(shù)值容量。
LinkedHashSet(int capacity, float fillRatio)它用于根據(jù)其參數(shù)初始化散列集的容量和填充比例(也稱為負(fù)載容量)。

 二、LinkedHashSet 類的操作

在LinkedHashSet類上執(zhí)行各種操作

2.1 添加操作

為了向LinkedHashSet添加元素,可以使用add()方法。

這與HashSet不同,因?yàn)樵贖ashSet中,插入順序不保留,而是保留在LinkedHashSet中。

    public static void main(String[] args) {
        // 創(chuàng)建
        LinkedHashSet<String> hs = new LinkedHashSet<String>();
        // 添加元素
        // 插入是有序的
        hs.add("深圳");
        hs.add("廣州");
        hs.add("東莞");
        // 輸出
        System.out.println("LinkedHashSet : " + hs);
    }

輸出:

LinkedHashSet : [深圳, 廣州, 東莞]

2.2 刪除操作

可以使用remove()方法從LinkedHashSet中刪除這些值。

實(shí)例:

    public static void main(String[] args) {
        // 創(chuàng)建
        LinkedHashSet<String> hs = new LinkedHashSet<String>();
        // 添加元素
        // 插入是有序的
        hs.add("深圳");
        hs.add("廣州");
        hs.add("東莞");
        // 輸出
        System.out.println("LinkedHashSet : " + hs);
        // 刪除 元素: 深圳
        hs.remove("廣州");
        System.out.println("刪除后的集合:"+hs);
    }

輸出:

LinkedHashSet : [深圳, 廣州, 東莞]
刪除后的集合:[深圳, 東莞]

2.3 迭代操作

使用iterator()方法迭代LinkedHashSet的元素。

最著名的方法是使用增強(qiáng)的for循環(huán)。

實(shí)例:

    public static void main(String[] args) {
        // 創(chuàng)建
        LinkedHashSet<String> hs = new LinkedHashSet<String>();
        // 添加元素
        // 插入是有序的
        hs.add("深圳");
        hs.add("廣州");
        hs.add("東莞");
        // 輸出
        System.out.println("LinkedHashSet : " + hs);
        // 使用迭代器
        Iterator itr = hs.iterator();
        while (itr.hasNext())
            System.out.print(itr.next() + ", ");
        // 換行
        System.out.println();
        // 使用 for-each
        for (String s : hs)
            System.out.print(s + ", ");
        System.out.println();
    }

輸出:

LinkedHashSet : [深圳, 廣州, 東莞]
深圳, 廣州, 東莞, 
深圳, 廣州, 東莞, 

三、LinkedHashSet 類的API

在類java.util.AbstractSet中聲明的方法

METHODDESCRIPTION
equals()用于驗(yàn)證對(duì)象與HashSet是否相等并比較它們。只有當(dāng)兩個(gè)HashSet都包含相同的元素時(shí),該列表才會(huì)返回true,無(wú)論順序如何。
hashcode()返回此集合的散列代碼值。
removeAll(collection)此方法用于刪除集合中存在于集合中的所有元素。如果該集合因調(diào)用而發(fā)生更改,則此方法返回true。

在類java.util.AbstractCollection中聲明的方法

METHODDESCRIPTION
addAll(collection)此方法用于將上述集合中的所有元素追加到現(xiàn)有集合。元素是隨機(jī)添加的,不遵循任何特定的順序。
containsAll(collection)此方法用于檢查集合是否包含給定集合中的所有元素。如果集合包含所有元素,則該方法返回true;如果缺少任何元素,則返回false。
retainAll(collection)此方法用于保留集合中給定集合中提到的所有元素。如果該集合因調(diào)用而發(fā)生更改,則此方法返回true。
toArray()此方法用于形成與Set的相同元素的數(shù)組。
toString()Java HashSet的toString()方法用于返回HashSet集合元素的字符串表示形式。

接口java.util.Collection中聲明的方法

METHODDESCRIPTION
parallelStream()返回一個(gè)可能并行的流,并將此集合作為其源。
removeIf(Predicate<? super E> filter)刪除此集合中滿足給定謂詞的所有元素。
stream()返回一個(gè)序列流,并將此集合作為其源。

在類java.util.HashSet中聲明的方法

METHODDESCRIPTION
add(E e)用于添加指定的元素,如果該元素不存在,則返回false。
clear()用于從集合中刪除所有元素。
contains(Object o)用于當(dāng)元素在set中出現(xiàn)時(shí)返回true。
remove(Object o)用于刪除集合中存在的元素。
iterator()用于返回一個(gè)遍歷集合中元素的迭代器。
isEmpty()用于檢查集合是否為空。如果為空則返回true,如果set的條件非空則返回false。
size()用于返回集合的大小。
clone()用于創(chuàng)建該集合的淺副本。

接口java.lang.Iterable中聲明的方法

METHODDESCRIPTION
forEach(Consumer action)對(duì)Iterable中的每個(gè)元素執(zhí)行給定的操作,直到所有元素都被處理完或該操作引發(fā)異常。

到此這篇關(guān)于Java集合框架之LinkedHashSet類解讀的文章就介紹到這了,更多相關(guān)Java集合LinkedHashSet內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論