1、List 和 Set 、Map的區別-金三銀四跳槽季Java面試大綱(答案篇)

ccmedu發表於2019-03-06

https://mp.weixin.qq.com/s/mYOf4B4UQYtosZ7T3c_xbw

金三銀四跳槽季,Java面試大綱(答案篇)

  • List,Set都是繼承自Collection介面

  • List特點:元素有放入順序,元素可重複。Set特點:元素無放入順序,元素不可重複,重複元素會覆蓋掉。(注意:元素雖然無放入順序,但是元素在set中的位置是由該元素的HashCode決定的,其位置其實是固定的,另外list可以通過下標來遍歷,也可以用迭代器,但是set只能用迭代,因為他無序,無法用下標來取得想要的值。)

List:1.可以允許重複的物件。

     2.可以插入多個null元素。

            3.是一個有序容器,保持了每個元素的插入順序,輸出的順序就是插入的順序。

            4.常用的實現類有 ArrayList、LinkedList 和 Vector。ArrayList 最為流行,它提供了使用索引的隨意訪問,而 LinkedList 則對於經常需要從 List 中新增或刪除元素的場合更為合適。

 

 Set:1.不允許重複物件

     2. 無序容器,你無法保證每個元素的儲存順序,TreeSet通過 Comparator  或者 Comparable 維護了一個排序順序。

        3. 只允許一個 null 元素

        4.Set 介面最流行的幾個實現類是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基於 HashMap 實現的 HashSet;TreeSet 還實現了 SortedSet 介面,因此 TreeSet 是一個根據其 compare() 和 compareTo() 的定義進行排序的有序容器。

 

Map:不是collection的子介面或者實現類。Map是一個介面。

2.Map 的 每個 Entry 都持有兩個物件,也就是一個鍵一個值,Map 可能會持有相同的值物件但鍵物件必須是唯一的。

3. TreeMap 也通過 Comparator  或者 Comparable 維護了一個排序順序。

4. Map 裡你可以擁有隨意個 null 值但最多隻能有一個 null 鍵。

5.Map 介面最流行的幾個實現類是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。(HashMap、TreeMap最常用)

相關文章