摘要:不是同步的也就是線程不安全,如果多個線程訪問同一個集合,如果有條或者條以上線程同時修改了集合時,必須使用代碼來保證其同步元素值可以是不能保證元素的排列順序,順序有可能發(fā)生變化手寫把里的用一個常量來代替底層利用,實現(xiàn)不可重復(fù)
Java知識點(diǎn)總結(jié)(Java容器-HashSet)
@(Java知識點(diǎn)總結(jié))[Java, Java容器, JavaCollection, JavaSet]
HashSet特點(diǎn)HashSet按Hash算法來存取 查找集合中的元素
HashSet具有很好的存取 查找的性能 從HashSet中查找某個對象時,首先調(diào)用對象的hashCode方法獲取該對象的哈希碼,然后根據(jù)哈希碼找到相應(yīng)的存儲區(qū)域,最后取出該存儲區(qū)域的每個元素與該元素進(jìn)行equals方法比較,這樣就不用遍歷集合中所有元素就能查找到結(jié)果。
HashSet不是同步的 也就是線程不安全,如果多個線程訪問同一個Set集合,如果有2條或者2條以上線程同時修改了HashSet集合時,必須使用代碼來保證其同步
元素值可以是null
不能保證元素的排列順序,順序有可能發(fā)生變化
手寫HashSetpublic class MyHashSet { HashMap map; private static final Object PRESENT = new Object(); //把map里的value用一個常量來代替 public MyHashSet(){ map = new HashMap(); } public void add(Object obj) { map.put(obj , PRESENT); //底層利用map,實現(xiàn)不可重復(fù) } public int size() { return map .size(); } public static void main(String[] args) { MyHashSet set = new MyHashSet(); set.add("1" ); set.add("2" ); set.add("3" ); System.out.println(set.size()); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69596.html
摘要:知識點(diǎn)總結(jié)容器知識點(diǎn)總結(jié)容器是一種不包括重復(fù)元素的。由于接口的特殊性,所有傳入集合中的元素必須不同。集合判斷兩個對象是否相同,是使用方法,而不是使用運(yùn)算符的。只能存儲,所以只會在存儲的情況下使用。 Java知識點(diǎn)總結(jié)(Java容器-Set) @(Java知識點(diǎn)總結(jié))[Java, Java容器, JavaCollection, JavaSet] Set Set是一種不包括重復(fù)元素的Col...
摘要:知識點(diǎn)總結(jié)容器知識點(diǎn)總結(jié)容器對象稱作迭代器,用于方便地實現(xiàn)對容器內(nèi)元素的遍歷操作接口定義如下判斷是否有元素沒有被遍歷返回游標(biāo)當(dāng)前位置的元素并將游標(biāo)移動到下一個位置刪除游標(biāo)左面的元素,在執(zhí)行完之后該操作只能執(zhí)行一次迭代器的使用實現(xiàn)實現(xiàn)原理游 Java知識點(diǎn)總結(jié)(Java容器-Iterator) @(Java知識點(diǎn)總結(jié))[Java, Java容器] Iterator Iterator對象稱...
摘要:和的區(qū)別是非線程安全的,效率高是基于線程安全的,效率低底層基于鏈表實現(xiàn),鏈表內(nèi)存是散亂的,每一個元素存儲本身內(nèi)存地址的同時還存儲下一個元素的地址?;旧隙际且詾榛A(chǔ)。 什么是集合 Java是一門面向?qū)ο蟮恼Z言. 為了方便操作多個對象,那么我們就得把這多個對象存儲起來 想要存儲多個對象(變量),我們就需要一個容器 集合就是一個放數(shù)據(jù)的容器(集合類存放的都是對象的引用,而非對象本身) ...
摘要:而在集合中,值僅僅是一個對象罷了該對象對本身而言是無用的。將這篇文章作為集合的總結(jié)篇,但覺得沒什么好寫就回答一些面試題去了,找了一會面試題又覺得不夠系統(tǒng)。 前言 聲明,本文用的是jdk1.8 花了一個星期,把Java容器核心的知識過了一遍,感覺集合已經(jīng)無所畏懼了?。?哈哈哈....),現(xiàn)在來總結(jié)一下吧~~ 回顧目錄: Collection總覽 List集合就這么簡單【源碼剖析】 Ma...
摘要:知識點(diǎn)總結(jié)容器知識點(diǎn)總結(jié)容器函數(shù)庫是包下的一些接口和類,類是用來產(chǎn)生對象存放數(shù)據(jù)用的,而接口是訪問數(shù)據(jù)的方式。底層也是數(shù)組實現(xiàn),線程安全,效率低效率高,線程不安全。 Java知識點(diǎn)總結(jié)(Java容器-Collection) @(Java知識點(diǎn)總結(jié))[Java, Java容器, JavaCollection] [toc] Collection Collection函數(shù)庫是java.uti...
閱讀 1074·2021-11-22 13:53
閱讀 1626·2021-11-17 09:33
閱讀 2425·2021-10-14 09:43
閱讀 2901·2021-09-01 11:41
閱讀 2304·2021-09-01 10:44
閱讀 2974·2021-08-31 09:39
閱讀 1475·2019-08-30 15:44
閱讀 1885·2019-08-30 13:02