Map List Set的區別


Map List Map的主要區別如下:

  set List 是實現了Collection接口的子接口;Map本身就是一個接口;

  list數據存放時有序的,允許有重復元素;set數據存放時無序的,不允許有重復數據;map是以鍵值對的形式存放,存放是無序的,key值不允許有重復的,value值可以有重復的;

  list里面可以有任意的null值;set數據只允許有一個null值,如果多個數據都是null,那么只存在一個;map的key值只能有一個null值,value值可以有任意數量的null值;

實現類(只說幾個平時在用的)

  list:ArrayList,LinkedList

  set:HashSet,TreeSet

  Map:HashMap,TreeMap

ArrayList和LinkedList的區別

  ArrayList底層為數組結構,數據存在內存中的地址是連續的,所以查詢效率高,直接用數組下標就可以得到數據,而插入,刪除要移動操作位置前后的元素。

  LinkedList底層為鏈表結構,數據存在內存中的地址不是連續的,查詢的時候需要通過指針一個一個去查找,效率沒有ArrayList高,但是插入,刪除操作的時候,只需要改變指針的指向即可,不需要移動操作位置前后元素。

 ArrayList費空間的地方就是真實的數組長度要大於實際存儲的元素的長度,為了方便添加數據;而LinkedList費空間的地方是一個位置要存本身的數據還有存指向前后的指針;

HashMap和HashTable的區別

  HashMap不是線程安全的,HashTable是線程安全的,內部的方法都是用synchronized修飾的,所以HashMap效率要比HashTable高;

  HashMap允許鍵值為null,HashTable不允許,只要有為null就會報空指針;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM