java map set list的區別

1、集合架構圖

在這裏插入圖片描述

2、集合之間的區別

(1)、 List 有序,可重複

  • ArrayList
    優點: 底層數據結構是數組,查詢快,增刪慢。
    缺點: 線程不安全,效率高
  • Vector
    優點: 底層數據結構是數組,查詢快,增刪慢。
    缺點: 線程安全,效率低
  • LinkedList
    優點: 底層數據結構是鏈表,查詢慢,增刪快。
    缺點: 線程不安全,效率高

(2)、Set 無序,唯一

  • HashSet
    底層數據結構是哈希表。(無序,唯一)
    如何來保證元素唯一性?
    1.依賴兩個方法:hashCode()和equals()
  • LinkedHashSet
    底層數據結構是鏈表和哈希表。(FIFO插入有序,唯一)
    1.由鏈表保證元素有序
    2.由哈希表保證元素唯一
  • TreeSet
    底層數據結構是紅黑樹。(唯一,有序)
    如何保證元素排序的呢?
    自然排序
    比較器排序
    如何保證元素唯一性的呢?
    根據比較的返回值是否是0來決定

(3)、Map
Map接口有三個比較重要的實現類,分別是HashMap、TreeMap和HashTable。

  • TreeMap是有序的,HashMap和HashTable是無序的。
  • Hashtable的方法是同步的,HashMap的方法不是同步的。這是兩者最主要的區別。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章