集合的基本區別

  1. arraylist:   有序,可以重複,查詢效率高,插入效率低。線程不安全,底層是數組。
  2. linkedList:  有序,可以重複,查詢效率低,插入效率高,線程不安全,底層是鏈表。
  3. vector: 有序,可以重複,底層是數組,所有方法都加了鎖,是線程安全的。
  4. set:  無序的(無序指的是沒有索引的概念),不能重複,通過equesl判斷 如果是true 就不能加入。最多隻能有一個是null,
  5. map:鍵值對的方式存儲數據,允許有個一個key是null,如果第二個key進來會把原來的key覆蓋掉,也就是說鍵不能重複,但是value能重複,也可以是多個value,線程不安全。
  6. hashtable: 與hashmap的用法一樣,就是不允許key或者value的值是null。線程安全
  7. hashset:  無序的,不能重複,裏面有個map屬性,這就是HashSet的核心祕密。我們再看add()方法,發現增加一個元素說白了就是在map中增加一個鍵值對,鍵對象就是這個元素,值對象是名爲PRESENT的Object對象。說白了,就是“往set中加入元素,本質就是把這個元素作爲key加入到了內部的map中”,由於map的key不能重複,所以hashset肯定不能重複
  8. Queue: 隊列,先進先出,LinkedList類實現了Queue接口,add(),remove(),element(),這些方法操作失敗到時候會拋出異常。但是poll()返回隊列用第一個元素並刪除。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章