Java中的Map及其使用

2021-09-22 18:41:09 字數 3521 閱讀 2507

概述:

將鍵對映到值的物件

乙個對映不能包含重複的鍵

每個鍵最多只能對映到乙個值

map介面和collection介面的不同

map是雙列的,collection是單列的

map的鍵唯一,collection的子體系set是唯一的

map集合的資料結構針對鍵有效,跟值無關;collection集合的資料結構是針對元素有效

a:新增功能

v put(k key,v value):新增元素。這個其實還有另乙個功能?替換

如果鍵是第一次儲存,就直接儲存元素,返回null

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

b:刪除功能

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

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

c:判斷功能

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

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

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

d:獲取功能

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

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

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

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

e:長度功能

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

獲取所有鍵的集合

遍歷鍵的集合,獲取到每乙個鍵

根據鍵找值

public class test4 

}}class phone

public string getbrand()

public void setbrand(string brand)

public int getprice()

public void setprice(int price)

}

獲取所有鍵值對物件的集合

遍歷鍵值對物件的集合,獲取到每乙個鍵值對物件

根據鍵值對物件找鍵和值

public class test4 }}

一般來說建議使用entryset遍歷方式,其效率高

linkedhashmap的概述: map 介面的雜湊表和鏈結列表實現,具有可預知的迭代順序linkedhashmap的特點: 底層的資料結構是鍊錶和雜湊表 元素有序 並且唯一

元素的有序性由鍊錶資料結構保證 唯一性由 雜湊表資料結構保證

map集合的資料結構只和鍵有關

treemap 鍵不允許插入null

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

排序分為自然排序和比較器排序

執行緒是不安全的效率比較高

treemap集合排序:

實現comparable介面,重寫compareto方法

使用比較器

public class test4 

}}class phone implements comparable

public string getbrand()

public void setbrand(string brand)

public int getprice()

public void setprice(int price)

@override

public int compareto(phone o)

}

基礎班

張三 20

李四 22

就業班王五 21

趙六 23

public class test5 }}

}

public class test3 

system.out.println();}}

}

a:collections類概述: 針對集合操作 的工具類

b:collections成員方法

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

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): 隨機置換

模擬鬥地主洗牌和發牌並對牌進行排序的**實現

//洗牌

collections.shuffle(list);

//發牌

treeset高進 = new treeset<>();

treeset刀仔 = new treeset<>();

treeset星仔 = new treeset<>();

treeset底牌 = new treeset<>();

// 高進 = (arraylist) pokerbox.sublist(0,17);

// 高進 0 3 6 9

//刀仔 1 4 7 10

// 星仔 2 5 8 11

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

}//看牌

lookpoker(map,高進,"高進");

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

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

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

}public static void lookpoker(hashmapmap, treesetlist, string name)

system.out.println();}}

map中的鍵唯一,但是當儲存自定義物件時,需要重寫hashcode和equals方

Java中的map使用

1.儲存資料方式 map儲存資料的形式是乙個key和乙個value對應 指令形式 2.hashmap 與 treemap hashmap 適用於在map中插入 刪除和定位元素。treemap 適用於按自然順序或自定義順序遍歷鍵 key hashmap通常比treemap快一點 樹和雜湊表的資料結構使...

java中 map使用總結

工作中經常遇到map,由於map和json 裝換很方便,使用的也很多,今天就系統的學習了一下。之前還遇到過map 的乙個坑,稍後整理 最快最高效的學習方法,就是講給別人聽,於是我就關閉那些書籍來講給自己聽。map 是包含key value鍵值對儲存的集合,一般我們不直接使用map,而是使用map 的...

Java中Map介面的使用

map介面也是乙個非常重要的集合介面,用於儲存鍵 值對。map中的元素都是成對出現的,鍵值對就像陣列的索引與陣列的內容的關係一樣,將乙個鍵對映到乙個值的物件。乙個對映不能包含重複的鍵 每個鍵最多只能對映到乙個值。key value value可以儲存任意型別的物件,我們可以根據key鍵快速查詢val...