一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Core Java 簡單談談HashSet(推薦)

Core Java 簡單談談HashSet(推薦)

2021-01-04 16:22huangqingshi Java教程

下面小編就為大家帶來一篇Core Java 簡單談談HashSet(推薦)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

同學們在看這個問題的時候,我先提出者兩個問題,然后大家帶著問題看這個文章會理解的更好。

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

2、HashSet是否添加null元素?

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

?
1
2
3
4
5
6
7
8
9
10
11
12
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中,然后將靜態final對象PRESENT作為value放到里邊,如果添加成功,那么HashMap返回null,然后也就是添加成功了,上一篇博文也講到了,咱們再講一次作為復習。如果將element放到HashMap里邊,首先判斷其hashCode,如果hashCode沒有找到,就根據hashCode計算index放到對應的bucket中,如果hashCode相同的話,那么再根據key的是否equals作為第二判斷,放到相應的linked list里邊了。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
  * 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;

當然第二個問題同學們是否也想到了,因為hashMap是支持key為null的,所以HashSet也是可以添加key為null的元素的。HashMap用的地方這么多,大家知道它很重要了吧?!

以上這篇Core Java 簡單談談HashSet(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/huangqingshi/archive/2017/09/17/7538346.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 5g影院天天5g天天爽大陆 | 无码AV精品一区二区三区 | 色多多视频在线 | 欧美成人免费tv在线播放 | 96av视频在线观看 | 国内精品久久久久久久 | 513热点 | 欧美日韩第二页 | 国产区香蕉精品系列在线观看不卡 | sss亚洲国产欧美一区二区 | 国产成人久视频免费 | 亚洲欧洲色图 | 天天色视频 | 香蕉在线播放 | 姐姐不~不可以动漫在线观看 | 亚飞与亚基高清国语在线观看 | 亚洲AV久久无码精品蜜桃 | 青青草原手机在线视频 | 国产福利你懂的 | 无码任你躁久久久久久久 | 国产精品久久久久网站 | 国产午夜精品一区二区三区 | ipx-177绝对领域在线观看 | 国内揄拍国内精品久久 | 国产大秀视频 | 男人午夜剧场 | 特黄特色大片免费高清视频 | 日本无遮挡吸乳视频看看 | 男人狂躁女人下面的视频免费 | 青青草成人影院 | 大胆私拍模特国模377 | 毛片 ftp| 国产在线激情视频 | 男人边吃奶边做好爽视频免费 | 国产区成人精品视频 | 9420高清视频在线观看网百度 | 日韩人成 | 亚洲性视频在线观看 | 国产午夜亚洲精品一区网站 | 2021国产精品露脸在线 | 美女张开腿让男人桶的 视频 |