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

Java集合之LinkedHashSet詳解

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

LinkedHashSet

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

在這里插入圖片描述

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中維護(hù)了一個(gè)hash表和雙向鏈表(LinkedHashSet有head和tail)

底層是LinkedHashMap,HashMap的子類

2)每個(gè)結(jié)點(diǎn)有before和after屬性,這樣可以形成雙向鏈表

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

head指向第一個(gè)結(jié)點(diǎn),tail指向最后一個(gè)結(jié)點(diǎn)

示例代碼:

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

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

5)第一次添加元素時(shí),直接將table數(shù)組擴(kuò)容到16,存放的結(jié)點(diǎn)類型為LinkedHashMap$Entry

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

Entry類型,繼承關(guān)系,構(gòu)成多態(tài)數(shù)組

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);
        }
    }

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

相關(guān)文章

  • 解決SpringMVC獲取請求參數(shù)亂碼問題

    解決SpringMVC獲取請求參數(shù)亂碼問題

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

    SpringBoot 文件上傳和下載的實(shí)現(xiàn)源碼

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

    優(yōu)雅地在Java應(yīng)用中實(shí)現(xiàn)全局枚舉處理的方法

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

    idea構(gòu)建web項(xiàng)目的超級詳細(xì)教程

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

    java 關(guān)鍵字static詳細(xì)介紹及如何使用

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

    SpringAop如何通過某個(gè)子類切父類

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

    Spring cloud Gateway簡介及相關(guān)配置方法

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

    hystrix服務(wù)降級方法使用介紹

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

    ThreadLocal內(nèi)存泄漏問題解決方案

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

    SpringBoot+MinIO實(shí)現(xiàn)對象存儲方式

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

最新評論

通榆县| 清镇市| 遂溪县| 东兴市| 雷波县| 连城县| 延寿县| 太仓市| 石嘴山市| 霸州市| 资阳市| 宁波市| 治多县| 抚远县| 红河县| 龙口市| 宁南县| 平顺县| 新津县| 平武县| 桂平市| 凤凰县| 龙泉市| 历史| 麻栗坡县| 平舆县| 卓资县| 祁门县| 湘潭县| 托里县| 凤城市| 松原市| 新乡市| 甘孜县| 普安县| 墨竹工卡县| 平潭县| 永顺县| 页游| 平邑县| 呼伦贝尔市|