1. 程式人生 > >Java中的集合詳解,結合 ArrayList、HashSet 的區別以及HashCode的作用。

Java中的集合詳解,結合 ArrayList、HashSet 的區別以及HashCode的作用。

Java中的集合:

     (1)Collection                   

       List(有序,可重複)             ArrayList                 底層資料結構是陣列,查詢快,增刪慢                 執行緒不安全,效率高             Vector                 底層資料結構是陣列,查詢快,增刪慢                 執行緒安全,效率低             LinkedList                 底層資料結構是連結串列,查詢慢,增刪快                 執行緒不安全,效率高         Set(無序,唯一)             HashSet                 底層資料結構是雜湊表。                 雜湊表依賴兩個方法:hashCode()和equals()

(2)Map(雙列集合)

      A:Map集合的資料結構僅僅針對鍵有效,與值無關。       B:儲存的是鍵值對形式的元素,鍵唯一,值可重複。

      HashMap執行緒不安全,

      HashTable執行緒安全,方法是Synchronize關鍵字的。

      TreeMap

ArrayList與HashSet:

1.ArrayList會以陣列的形式進行存放資料,所以就是說放進去的物件都是不唯一且有序的,可以存下多個相同的物件。

2.HashSet其本身就是無序的,唯一的,當存在相同的物件時,該物件會被替換掉,故不會存在重複的值.(為什麼不會出現重複的值?原因是採取了Hash的演算法,每一個放進去的值或者說物件都會生成一些特定的數字,並進行比對。)

HashCode:

HashCode方法的作用就是進行比較物件內部的值,如果物件內部的值相同則會被歸納,為一個物件,在new HashSet進行存放值的之後可以相繼進行使用(java類中右鍵-->resoure(原始碼)-->hashCode() and equals()...)。