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

Core Java 簡單談?wù)凥ashSet(推薦)

 更新時間:2017年09月18日 09:53:09   投稿:jingxian  
下面小編就為大家?guī)硪黄狢ore Java 簡單談?wù)凥ashSet(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

同學(xué)們在看這個問題的時候,我先提出者兩個問題,然后大家?guī)е鴨栴}看這個文章會理解的更好。

1、HashSet為什么添加元素時不能添加重復(fù)元素?

2、HashSet是否添加null元素?

打開源碼, 我們看到如下代碼,我們看到HashSet也有一個HashMap做為屬性,HashSet()的構(gòu)造方法就是將這個map實(shí)例化。如果大家對HashMap還不了解話,可以看我的這篇博文。還要注意有一個靜態(tài)final的對象PRESENT,這個是干什么用的,咱們繼續(xù)往下看。

private transient HashMap<E,Object> map;

 // Dummy value to associate with an Object in the backing Map
 private static final Object PRESENT = new Object();

 /**
  * Constructs a new, empty set; the backing <tt>HashMap</tt> instance has
  * default initial capacity (16) and load factor (0.75).
  */
 public HashSet() {
  map = new HashMap<>();
 }

然后我們再打開其add方法,其就是將元素e放到HashMap中,然后將靜態(tài)final對象PRESENT作為value放到里邊,如果添加成功,那么HashMap返回null,然后也就是添加成功了,上一篇博文也講到了,咱們再講一次作為復(fù)習(xí)。如果將element放到HashMap里邊,首先判斷其hashCode,如果hashCode沒有找到,就根據(jù)hashCode計算index放到對應(yīng)的bucket中,如果hashCode相同的話,那么再根據(jù)key的是否equals作為第二判斷,放到相應(yīng)的linked list里邊了。

/**
  * Adds the specified element to this set if it is not already present.
  * More formally, adds the specified element <tt>e</tt> to this set if
  * this set contains no element <tt>e2</tt> such that
  * <tt>(e==null&nbsp;?&nbsp;e2==null&nbsp;:&nbsp;e.equals(e2))</tt>.
  * If this set already contains the element, the call leaves the set
  * unchanged and returns <tt>false</tt>.
  *
  * @param e element to be added to this set
  * @return <tt>true</tt> if this set did not already contain the specified
  * element
  */
 public boolean add(E e) {
  return map.put(e, PRESENT)==null;

當(dāng)然第二個問題同學(xué)們是否也想到了,因?yàn)閔ashMap是支持key為null的,所以HashSet也是可以添加key為null的元素的。HashMap用的地方這么多,大家知道它很重要了吧?!

以上這篇Core Java 簡單談?wù)凥ashSet(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java適配器模式之萬物擬人化

    java適配器模式之萬物擬人化

    本文詳細(xì)介紹了什么是適配器模式,適配器模式的種類以及各種類的詳細(xì)講解等,需要學(xué)習(xí)該知識點(diǎn)的小伙伴可以參考這篇文章
    2021-08-08
  • RocketMQ實(shí)現(xiàn)消息分發(fā)的步驟

    RocketMQ實(shí)現(xiàn)消息分發(fā)的步驟

    RocketMQ 實(shí)現(xiàn)消息分發(fā)的核心機(jī)制是通過 Topic、Queue 和 Consumer Group 的配合實(shí)現(xiàn)的,下面給大家介紹RocketMQ實(shí)現(xiàn)消息分發(fā)的步驟,感興趣的朋友一起看看吧
    2024-03-03
  • Java處理科學(xué)計數(shù)法數(shù)字方式

    Java處理科學(xué)計數(shù)法數(shù)字方式

    這篇文章主要介紹了Java處理科學(xué)計數(shù)法數(shù)字方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java解析方法的調(diào)用關(guān)系示例詳解

    Java解析方法的調(diào)用關(guān)系示例詳解

    這篇文章主要介紹了Java解析方法的調(diào)用關(guān)系,方法在Java編程中用于封裝重復(fù)的代碼,提高代碼復(fù)用性,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Springcloud-nacos實(shí)現(xiàn)配置和注冊中心的方法

    Springcloud-nacos實(shí)現(xiàn)配置和注冊中心的方法

    這篇文章主要介紹了Springcloud-nacos實(shí)現(xiàn)配置和注冊中心的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • mybatis自定義類型處理器TypehHandler示例詳解

    mybatis自定義類型處理器TypehHandler示例詳解

    我們在寫mapper映射器的配置文件時,不經(jīng)意間已經(jīng)用到類型轉(zhuǎn)換,不過是mybatis幫我們完成的,下面這篇文章主要給大家介紹了關(guān)于mybatis自定義類型處理器TypehHandler的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • java定時任務(wù)實(shí)現(xiàn)的4種方式小結(jié)

    java定時任務(wù)實(shí)現(xiàn)的4種方式小結(jié)

    這篇文章主要介紹了java定時任務(wù)實(shí)現(xiàn)的4種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • spring自定義注解實(shí)現(xiàn)攔截器的實(shí)現(xiàn)方法

    spring自定義注解實(shí)現(xiàn)攔截器的實(shí)現(xiàn)方法

    本篇文章主要介紹了spring自定義注解實(shí)現(xiàn)攔截器的實(shí)現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java監(jiān)聽POST請求的示例詳解

    Java監(jiān)聽POST請求的示例詳解

    要監(jiān)聽POST請求,我們可以使用Java中的HttpServlet類,以下是一個使用Servlet API監(jiān)聽POST請求的完整示例,通過代碼示例講解的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2024-12-12
  • Spring JDBC的使用詳解

    Spring JDBC的使用詳解

    這篇文章主要介紹了Spring JDBC的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下
    2021-05-05

最新評論

军事| 安远县| 改则县| 黑水县| 兴宁市| 牡丹江市| 井冈山市| 秦皇岛市| 松江区| 嫩江县| 泊头市| 讷河市| 梁河县| 望奎县| 仲巴县| 牡丹江市| 景洪市| 凌海市| 饶阳县| 临澧县| 桃园市| 海安县| 鹤山市| 阿图什市| 卓资县| 蒲城县| 闵行区| 上栗县| 郁南县| 静宁县| 喀什市| 湾仔区| 甘谷县| 广宗县| 天台县| 梧州市| 防城港市| 井研县| 蓬溪县| 民丰县| 和平区|