更新時間:2020-05-21 14:52:29 來源:動力節點 瀏覽3043次
遍歷
HashSet作為集合,有多種遍歷方法,如普通for循環,增強for循環,迭代器,我們通過迭代器遍歷來看一下
打印出來的結果如何呢?
星期二
星期三
星期四
星期五
星期一
意料之中吧,HashSet是通過HashMap來實現的,HashMap通過hash(key)來確定存儲的位置,是不具備存儲順序性的,因此HashSet遍歷出的元素也并非按照插入的順序。
合計合計
按照我前面的規劃,應該每一塊主要的內容都單獨寫一下,如集合ArrayList,LinkedList,HashMap,TreeMap等。不過我在寫這篇關于HashSet的文章時,發現有前面對HashMap的講解后,確實簡單,HashSet就是一個皮包公司,在HashMap外面加了一個殼,那么LinkedHashSet是否就是在LinkedHashMap外面加了一個殼呢,而TreeSet是否是在TreeMap外面加了一個殼?我們來驗證一下
先看一下LinkedHashSet
最開始的結構圖已經提到了LinkedHashSet是HashSet的子類,我們來看源碼
上面就是LinkedHashSet的所有代碼了,是不是感覺智商被否定了,這基本上沒啥東西嘛,構造器還全部調用父類的,下面就是其父類HashSet的對此的構造方法
大家也看出來,和我們的猜測一樣,沒有深究下去的必要了。如果有興趣可以看看LinkedHashMap如何保證順序性
在看一下TreeSet
確實如我們所猜測,TreeSet也完全依賴于TreeMap來實現,如果有興趣可以看看TreeMap原理實現及常用方法
以上就是動力節點java培訓機構的小編針對“新手編程學習,Java遍歷hashset”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習