1. 程式人生 > >關於set、map、list的區別

關於set、map、list的區別

1、set與list所存的是單數列資料,而map的是雙數列資料,也就是鍵值對,擁有一個key與一個value

2、list中儲存的資料是按照你存的先後順序進行排序,可以重複;map中的資料是沒有順序,但他的鍵不允許重複,當有相同的key時,後一個value會對前一個value進行覆蓋;set中所存的資料是不允許重複,資料的位置對於使用者來說不可控的,即是不排序的,但實際上由該資料的hashcode決定了

3、list有三個實現類:linkedList(基於連結串列實現的,增刪塊,查詢慢),ArrayList(基於陣列實現,查詢快,刪除慢),Vector(基於陣列實現,執行緒安全【增刪的方法是用synchronized實現同步】,但犧牲了效率)

       map的實現類:hashMap(基於hash表的map介面實現,非執行緒安全,高效率,支援null鍵與null值)、linkedhashMap (是hashMap的一個子類,主要是記錄插入的順序)、TreeMap(能夠根據它的儲存的記錄進行排序,一般是根據鍵的升序排序)

      set有兩個實現類,hashset(底層用hashMap實現,不允許有重複的的值)、linkedHashSet(底層用LinkedHashMap進行實現)

4、方法上的不同:list、set是用add進行新增,而map是用put;