1. 程式人生 > >Java中array、Set、List和Map的比較總結

Java中array、Set、List和Map的比較總結

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.集合建立時規定,並自定義比較類。

3、Map集合:雙列集合,用於存放鍵值對。鍵值是唯一的,不可重複。