Map集合 Collections工具類

2021-09-21 14:54:00 字數 3027 閱讀 9688

map:map介面提供了key對映到值的物件。

特點:乙個對映不能包含重複的key,每個key最多只能對映到乙個值。

常見方法

1、新增功能 

v put(k key,v value):

新增元素。其另乙個功能?替換

第一次儲存,就直接儲存元素,返回null;

不是第一次存在,就用值把以前的值替換掉,返回以前的值

2、刪除功能

void clear(): 移除所有的鍵值對元素

v remove(object key): 根據鍵刪除鍵值對元素,並把值返回

3、判斷功能

boolean containskey(object key): 判斷集合是否包含指定的鍵

boolean containsvalue(object value): 判斷集合是否包含指定的值

boolean isempty(): 判斷集合是否為空

4、獲取功能

set> entryset(): 返回乙個鍵值對的set集合

v get(object key): 根據鍵獲取值

setkeyset(): 獲取集合中所有鍵的集合

collectionvalues(): 獲取集合中所有值的集合

5、長度功能

int size(): 返回集合中的鍵值對的對數

hashmap類:基於雜湊表的map介面的實現,儲存的內容是鍵值對(key-value)對映。

**特點**:允許插入null鍵 null值,不保證對映的順序。
**特點**:底層的資料結構是鍊錶和雜湊表,元素有序,並且唯一;

有序性由鍊錶資料結構保證,唯一性由雜湊表資料結構保證。

treemap類:基於紅黑樹的map介面的實現。

**特點**:鍵的資料結構是紅黑樹,可保證鍵的排序和唯一性  

排序分為:自然排序、比較器排序

執行緒不安全、效率比較高

hashmap巢狀hashmap

例:

public class test1

system.out.println();}}

}

hashmap巢狀arraylist

public class test2 

system.out.println();}}

}

arraylist巢狀hashmap

public class test3 

system.out.println();}}

}

hashmap和hashtable的區別

hashmap: 執行緒不安全,效率高,允許null值和null鍵;

hashtable: 執行緒安全,效率低,不允許null值和null鍵。

collections工具類:提供了對集合進行操作的,靜態多型方法,不能例項化。

常見方法

public static void sort(listlist):					排序,預設按照自然順序

public static int binarysearch(list<?> list,t key): 二分查詢

public static t max(collection<?> coll): 獲取最大值

public static void reverse(list<?> list): 反轉

public static void shuffle(list<?> list): 隨機置換

例:模擬鬥地主洗牌、發牌

public class test ;

//數字

string nums = ;

for (string num : nums)

}//手動新增大小王

pokerbox.put(index, "★");

indexs.add(index);

index++;

pokerbox.put(index, "☆");

indexs.add(index);

//洗牌 洗索引集合

collections.shuffle(indexs);

collections.shuffle(indexs);

collections.shuffle(indexs);

//發牌

treeset大軍 = new treeset();

treeset刀仔 = new treeset();

treeset星仔 = new treeset();

treeset底牌 = new treeset();

for (int i = 0; i < pokerbox.size(); i++) else if (i % 3 == 0) else if (i % 3 == 1) else

}//看牌

lookpoker("大軍", 大軍, pokerbox);

lookpoker("刀仔", 刀仔, pokerbox);

lookpoker("星仔", 星仔, pokerbox);

lookpoker("底牌", 底牌, pokerbox);

}private static void lookpoker(string name, treesetset, hashmappokerbox)

system.out.println();

}}

集合Collection和Map結構原理

list setmap attributeofall arratlist linkedlist vector hashset treeset linkedhashset hashmap hashtable linkedhashmap treemap 資料結構 動態陣列 鍊錶結構,位址任意 動態陣列 ...

Collection和Map集合體系說明

集合體系說明 collection集合下分為list集合和set集合 collection list集合下有arraylist,linkedlist,vector 基本不用 三種集合體系 list集合有序,可重複,進去是什麼順序,取出還是這個順序 1.arraylist底層採用的是陣列儲存元素,所以...

集合 Collection集合總結

list有序,可重複 abstractlist 父類abstractcollection抽象類,實現了list介面 arraylist 父類abstractlist 底層資料結構是陣列,查詢快,增刪慢。執行緒不安全,不同步,效率高 vector 父類abstractlist 底層資料結構是陣列,查詢...