亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Java知識(shí)點(diǎn)總結(jié)(Java容器-HashSet)

MadPecker / 2334人閱讀

摘要:不是同步的也就是線程不安全,如果多個(gè)線程訪問同一個(gè)集合,如果有條或者條以上線程同時(shí)修改了集合時(shí),必須使用代碼來保證其同步元素值可以是不能保證元素的排列順序,順序有可能發(fā)生變化手寫把里的用一個(gè)常量來代替底層利用,實(shí)現(xiàn)不可重復(fù)

Java知識(shí)點(diǎn)總結(jié)(Java容器-HashSet)

@(Java知識(shí)點(diǎn)總結(jié))[Java, Java容器, JavaCollection, JavaSet]

HashSet特點(diǎn)

HashSet按Hash算法來存取 查找集合中的元素

HashSet具有很好的存取 查找的性能 從HashSet中查找某個(gè)對(duì)象時(shí),首先調(diào)用對(duì)象的hashCode方法獲取該對(duì)象的哈希碼,然后根據(jù)哈希碼找到相應(yīng)的存儲(chǔ)區(qū)域,最后取出該存儲(chǔ)區(qū)域的每個(gè)元素與該元素進(jìn)行equals方法比較,這樣就不用遍歷集合中所有元素就能查找到結(jié)果。

HashSet不是同步的 也就是線程不安全,如果多個(gè)線程訪問同一個(gè)Set集合,如果有2條或者2條以上線程同時(shí)修改了HashSet集合時(shí),必須使用代碼來保證其同步

元素值可以是null

不能保證元素的排列順序,順序有可能發(fā)生變化

手寫HashSet
public class MyHashSet {
  HashMap map;
  private static final Object PRESENT = new Object(); //把map里的value用一個(gè)常量來代替
  
  public MyHashSet(){
    map = new HashMap();
  }
  public void add(Object obj) {
    map.put(obj , PRESENT);  //底層利用map,實(shí)現(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/69596.html

相關(guān)文章

  • Java識(shí)點(diǎn)總結(jié)Java容器-Set)

    摘要:知識(shí)點(diǎn)總結(jié)容器知識(shí)點(diǎn)總結(jié)容器是一種不包括重復(fù)元素的。由于接口的特殊性,所有傳入集合中的元素必須不同。集合判斷兩個(gè)對(duì)象是否相同,是使用方法,而不是使用運(yùn)算符的。只能存儲(chǔ),所以只會(huì)在存儲(chǔ)的情況下使用。 Java知識(shí)點(diǎn)總結(jié)(Java容器-Set) @(Java知識(shí)點(diǎn)總結(jié))[Java, Java容器, JavaCollection, JavaSet] Set Set是一種不包括重復(fù)元素的Col...

    dack 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)Java容器-Iterator)

    摘要:知識(shí)點(diǎn)總結(jié)容器知識(shí)點(diǎn)總結(jié)容器對(duì)象稱作迭代器,用于方便地實(shí)現(xiàn)對(duì)容器內(nèi)元素的遍歷操作接口定義如下判斷是否有元素沒有被遍歷返回游標(biāo)當(dāng)前位置的元素并將游標(biāo)移動(dòng)到下一個(gè)位置刪除游標(biāo)左面的元素,在執(zhí)行完之后該操作只能執(zhí)行一次迭代器的使用實(shí)現(xiàn)實(shí)現(xiàn)原理游 Java知識(shí)點(diǎn)總結(jié)(Java容器-Iterator) @(Java知識(shí)點(diǎn)總結(jié))[Java, Java容器] Iterator Iterator對(duì)象稱...

    iliyaku 評(píng)論0 收藏0
  • Collection集合識(shí)點(diǎn)總結(jié)

    摘要:和的區(qū)別是非線程安全的,效率高是基于線程安全的,效率低底層基于鏈表實(shí)現(xiàn),鏈表內(nèi)存是散亂的,每一個(gè)元素存儲(chǔ)本身內(nèi)存地址的同時(shí)還存儲(chǔ)下一個(gè)元素的地址?;旧隙际且詾榛A(chǔ)。 什么是集合 Java是一門面向?qū)ο蟮恼Z言. 為了方便操作多個(gè)對(duì)象,那么我們就得把這多個(gè)對(duì)象存儲(chǔ)起來 想要存儲(chǔ)多個(gè)對(duì)象(變量),我們就需要一個(gè)容器 集合就是一個(gè)放數(shù)據(jù)的容器(集合類存放的都是對(duì)象的引用,而非對(duì)象本身) ...

    I_Am 評(píng)論0 收藏0
  • Java集合總結(jié)【面試題+腦圖】,將識(shí)點(diǎn)一網(wǎng)打盡!

    摘要:而在集合中,值僅僅是一個(gè)對(duì)象罷了該對(duì)象對(duì)本身而言是無用的。將這篇文章作為集合的總結(jié)篇,但覺得沒什么好寫就回答一些面試題去了,找了一會(huì)面試題又覺得不夠系統(tǒng)。 前言 聲明,本文用的是jdk1.8 花了一個(gè)星期,把Java容器核心的知識(shí)過了一遍,感覺集合已經(jīng)無所畏懼了?。?哈哈哈....),現(xiàn)在來總結(jié)一下吧~~ 回顧目錄: Collection總覽 List集合就這么簡(jiǎn)單【源碼剖析】 Ma...

    yearsj 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)Java容器-Collection)

    摘要:知識(shí)點(diǎn)總結(jié)容器知識(shí)點(diǎn)總結(jié)容器函數(shù)庫(kù)是包下的一些接口和類,類是用來產(chǎn)生對(duì)象存放數(shù)據(jù)用的,而接口是訪問數(shù)據(jù)的方式。底層也是數(shù)組實(shí)現(xiàn),線程安全,效率低效率高,線程不安全。 Java知識(shí)點(diǎn)總結(jié)(Java容器-Collection) @(Java知識(shí)點(diǎn)總結(jié))[Java, Java容器, JavaCollection] [toc] Collection Collection函數(shù)庫(kù)是java.uti...

    GeekGhc 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<