概述:
將鍵對映到值的物件
乙個對映不能包含重複的鍵
每個鍵最多只能對映到乙個值
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...