Java集合:List、Set和Map的區別,ArrayList和LinkedList有何區別..........

1、數組和集合的區別:

  數組是大小固定的,而且同一個數組只能存放類型同樣的數據(基本類型/引用類型);

  集合能夠存儲和操做數目不固定的一組數據。 全部的JAVA集合都位於 java.util包中! JAVA集合只能存放引用類型的的數據,不能存放基本數據類型。

  數組和集合相比惟一的有點就是速度快。

2、Java集合分類:

  1.Collection(接口):派生的兩個子接口:List和Set

    List(列表):有序可重複元素,能夠插入多個null元素。實現List接口的經常使用有LinkedList,ArrayList,Vector和Stack。

 

    Set(集):序、不可重複元素,最多有一個null元素。

  2.Map(映射):不是collection的子接口或者實現類,Map是一個接口。Map 接口最流行的幾個實現類是 HashMap、LinkedHashMap、Hashtable 和 TreeMap

3、幾個重要區別java

  1. List、Set和Map的區別
數組

     List:有序、可重複元素,能夠插入多個null元素。
安全

     Set:無序、不可重複元素,最多有一個null元素。數據結構

     Map:集合中的每個元素包含一對鍵對象和值對象,集合中沒有重複的鍵對象值對象能夠重複。它的有些實現類能對集合中的鍵對象進行排序。spa

  2.ArrayList和LinkedList的區別?  線程

      (1). ArrayList是實現了基於動態數組的數據結構,LinkedList基於鏈表的數據結構。   

    (2). 對於隨機訪問get和setArrayList以爲優於LinkedList,由於LinkedList要移動指針。   

    (3). 對於新增和刪除操做add和remove,LinedList比較佔優點,由於ArrayList要移動數據。 

   3.HashTable和HashMap的區別?

    (1). HashTable:繼承自Dictionary類,不接受爲null的鍵值(key)和值(value),線程安全  

    (2). HashMap:繼承自AbstractMap類,可接受爲null的鍵值(key)和值(value),線程不安全   

相關文章
相關標籤/搜索