最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java集合之LinkedHashSet詳解

 更新時間:2023年09月04日 09:25:03   作者:AI訓練師  
這篇文章主要介紹了Java集合之LinkedHashSet詳解,LinkedHashSet是HashSet的子類,實現了Set接口,LinkedHashSet底層是一個LinkedHashMap,底層維護了一個數組+雙向鏈表,需要的朋友可以參考下

LinkedHashSet

  • LinkedHashSet是HashSet的子類,實現了Set接口
  • LinkedHashSet底層是一個LinkedHashMap,底層維護了一個數組+雙向鏈表
  • LinkedHashSet根據元素的HashCode值來決定元素的存儲位置,同時使用鏈表維護元素的次序,這使得元素看起來是以插入的順序保存的
  • 不允許添加重復元素

在這里插入圖片描述

Set  set = new LinkedHashSet();
set.add(new String("AA"));
set.add(456);
set.add(456);
set.add(new Employee("劉",1001));
set.add(123);
set.add("hello")

在這里插入圖片描述

1)在LinkedHashSet中維護了一個hash表和雙向鏈表(LinkedHashSet有head和tail)

底層是LinkedHashMap,HashMap的子類

2)每個結點有before和after屬性,這樣可以形成雙向鏈表

3)在添加一個元素時,先求hash值,再求索引,確定該元素在table的位置,然后將添加的元素加入到雙向鏈表,如果已經存在,就不添加,和HashSet一樣。

head指向第一個結點,tail指向最后一個結點

示例代碼:

tail.next = newElement;
newElement.pre = tail;
tail = newElement;

4)這樣以后,遍歷LinkedHashSet也能確保插入順序和遍歷順序一樣

5)第一次添加元素時,直接將table數組擴容到16,存放的結點類型為LinkedHashMap$Entry

6)數組table是HashMap$Node[ ],存放的元素/數據是LinkedHashMap $Entry類型

Entry類型,繼承關系,構成多態(tài)數組

static class Entry<K,V> extends HashMap.Node<K,V> {
        Entry<K,V> before, after;
        Entry(int hash, K key, V value, Node<K,V> next) {
            super(hash, key, value, next);
        }
    }

到此這篇關于Java集合之LinkedHashSet詳解的文章就介紹到這了,更多相關Java的LinkedHashSet內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決SpringMVC獲取請求參數亂碼問題

    解決SpringMVC獲取請求參數亂碼問題

    在使用SpringMVC和thymeleaf進行請求參數處理時,可能會遇到亂碼問題,對于GET方法亂碼,可通過修改Tomcat的server.xml文件,添加URIEncoding="UTF-8"解決,而POST方法亂碼,則需在web.xml配置SpringMVC提供的過濾器
    2024-11-11
  • SpringBoot 文件上傳和下載的實現源碼

    SpringBoot 文件上傳和下載的實現源碼

    這篇文章主要介紹了SpringBoot 文件上傳和下載的實現源碼,代碼簡單易懂非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • 優(yōu)雅地在Java應用中實現全局枚舉處理的方法

    優(yōu)雅地在Java應用中實現全局枚舉處理的方法

    這篇文章主要給大家介紹了關于如何優(yōu)雅地在Java應用中實現全局枚舉處理的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-02-02
  • idea構建web項目的超級詳細教程

    idea構建web項目的超級詳細教程

    好多朋友在使用IDEA創(chuàng)建項目時,總會碰到一些小問題,下面這篇文章主要給大家介紹了關于idea構建web項目的超級詳細教程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • java 關鍵字static詳細介紹及如何使用

    java 關鍵字static詳細介紹及如何使用

    這篇文章主要介紹了java 關鍵字static詳細介紹及如何使用的相關資料,需要的朋友可以參考下
    2017-03-03
  • SpringAop如何通過某個子類切父類

    SpringAop如何通過某個子類切父類

    這篇文章主要介紹了SpringAop如何通過某個子類切父類,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Spring cloud Gateway簡介及相關配置方法

    Spring cloud Gateway簡介及相關配置方法

    這篇文章主要介紹了Spring cloud Gateway簡介及相關配置方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • hystrix服務降級方法使用介紹

    hystrix服務降級方法使用介紹

    什么是服務降級?當服務器壓力劇增的情況下,根據實際業(yè)務情況及流量,對一些服務和頁面有策略的不處理或換種簡單的方式處理,從而釋放服務器資源以保證核心交易正常運作或高效運作
    2022-09-09
  • ThreadLocal內存泄漏問題解決方案

    ThreadLocal內存泄漏問題解決方案

    這篇文章主要介紹了ThreadLocal內存泄漏問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot+MinIO實現對象存儲方式

    SpringBoot+MinIO實現對象存儲方式

    這篇文章主要介紹了SpringBoot+MinIO實現對象存儲方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評論

阿尔山市| 清丰县| 乌什县| 卓尼县| 尼木县| 巴里| 江城| 彰武县| 仪征市| 沛县| 翁牛特旗| 成武县| 特克斯县| 赣州市| 金堂县| 光山县| 永吉县| 晋中市| 芷江| 浦江县| 寿阳县| 大埔县| 沭阳县| 尼玛县| 万安县| 交口县| 浏阳市| 青海省| 杨浦区| 革吉县| 横峰县| 广南县| 甘孜| 宝清县| 化州市| 乌苏市| 山东| 沂水县| 保康县| 叙永县| 甘肃省|