Java中array、Set、List和Map的比較總結
阿新 • • 發佈:2019-01-04
array、List、Set、Map的區別:
1、array:陣列,可以儲存物件和基本資料型別,長度固定。
2、Collection介面:集合(單列),用於儲存物件、不能儲存基本資料型別(int,char等),但可以儲存基本資料型別包裝類(int-Integer,char-Character等),長度可變。
為什麼會出現這麼多集合呢,我們可以把集合比如成容器。每個不同容器中對資料的儲存方式不同,這種儲存方式稱為資料結構。
2.1、List集合:元素有序,可重複,允許為null。
常見實現類:
ArrayList:陣列。特點:有索引(腳標),所以查詢快,增刪後每個元素的索引都發生改變,所以增刪慢,而且陣列越長增刪越慢。
LinkedList:連結串列。特點:無索引,每個元素都包含下一元素地址,查詢需要逐一進行,所以查詢慢,但是增刪快只需要改變元素後面的地址。
Vector:執行緒同步陣列 基本拋棄使用。
2.2、Set集合:元素無序,不重複,允許為null,無索引。
常見實現類:
HashSet:雜湊表。特點:執行緒非同步,保證元素唯一性原理:判斷hashCode是否相同,是否相同根據判斷equals方法是否為true。
TreeSet:二叉樹。特點:可對用兩種方法對集合中元素排序。
a.實現comparable介面,覆蓋compareTo方法。
b.集合建立時規定,並自定義比較類。