map set 和 List 的區別

2021-09-24 09:41:49 字數 1988 閱讀 5866

listlist = new arraylist();
獲取值:list.get(0);

新增值:list.add("zhu");

獲取長度:list.size();

mapmap = new hashmap();

獲取值:map.get("name")

新增值:map.put("小明","14歲")    //假設兩個都是string 

獲取長度:map.size()

list> listmap = new arraylist>();

1:宣告乙個map

mapmap = new hashmap();

說明:map是通過key-value(值鍵對) ,string代表key的型別(一般都是string),object代表value的型別

2:put(key,value)  賦值

map.put("name", "小明");

map.put("***", "男");

map.put("age", 18);

3:get(key)  取值      

map.get("name")   結果:小明

(三):list

1:宣告乙個list

list> listmap = new arraylist>();

2:賦值

(1):先賦值給map

mapmap1 = new hashmap();

map1.put("name", "小明");

map1.put("***", "男");

map1.put("age", 18);

mapmap2 = new hashmap();

map2.put("name", "小紅");

map2.put("***", "女");

map2.put("age", 16);

(2):將map新增到list中

listmap.add(map1);

listmap.add(map2);

結果:[, ]

(3):遍歷

for(int i = 0;isystem.out.print(listmap.get(i).get("name"));

system.out.print(listmap.get(i).get("***"));

system.out.print(listmap.get(i).get("age"));

system.out.println();

}原文: 

set courseset = new hashset();

setcourseset1 = new hashset();

seth = new hashset(arrays.aslist("a", "b"));

新增值:set和list不一樣,它是乙個介面,因此需要例項化它的實現類。

string s1=new string("hello");  

set.add(s1);

獲取值:

獲取長度:set.size

1、首先set和list都屬於collection,map則不是。

collection中每個位置只有乙個元素。list並且是線性存放,可重複的。

map則是鍵值配對,乙個key只能有乙個value。

2、什麼時候使用它們

1. 如果涉及到堆疊,佇列等操作,應該考慮用list,對於需要快速插入,刪除元素,應該使用linkedlist,如果需要快速隨機訪問元素,應該使用arraylist。

2. 如果程式在單執行緒環境中,或者訪問僅僅在乙個執行緒中進行,考慮非同步的類,其效率較高,如果多個執行緒可能同時操作乙個類,應該使用同步的類。

3. 在除需要排序時使用treeset,treemap外,都應使用hashset,hashmap,因為他們 的效率更高。

4. 要特別注意對雜湊表的操作,作為key的物件要正確複寫equals和hashcode方法。

Map Set和List的一些關聯

三種集合的示意圖如下 一 map和set map集合的key具有的特徵是無序不重複,如果將map的所有key集中起來,那麼這些key就組成了乙個set集合,而且事實就是map集合提供了如下方法來返回所有key組成的集合 可以看出keyset 的返回型別就是set型別的。對於map而言只要把所有的ke...

List,陣列,map,set 相互轉化

list 陣列 listlist new arraylist list.add tom list.add jerval list.add weisi object objects list.toarray 返回object陣列 system.out.println objects arrays.to...

List 和 IList的區別

常見問題 ilist 本身只是乙個泛型介面,既然是介面當然不能例項化,只能用如下方法 ilist ilist11 new list 但是為什麼要這麼用呢,為什麼不直接用list list list11 new list 第一種用法有什麼好處。總結歸納一下 ilist 是在 net2.0裡面才支援的 ...