Map集合綜述
java.util.Map<k,v>集合
map集合的特點:(多線程)
1.Map集合是一個雙列集合,一個集合包含兩個值(一個key,一個value)
2.Map集合中的元素,key和value的數據類型可以相同,也可以不同
3.Map集合中的元素,key是不允許重複的,value是可以重複的
4.Map集合中的元素,key和value一一對應的
Map集合常用實現類
hashMap集合特點:
1.HashMap集合底層是哈希表:查詢的速度特別快
jdk1.8之前:數組+單向鏈表
jdk1.8之後:數組+單向鏈表/紅黑樹(鏈表的長度超過8):提高查詢的速度
2.hashMap集合是一個無序的集合,存儲元素和取出元素的順序有可能不一致
java.util.LinkedHashMap<k,v>集合 extends HashMap<k,v>集合
LinkedHashMap的特點:
1.LinkedHashMap集合底層是哈希表+鏈表
2.LinkedHashMap集合是一個有序的集合,存儲元素和取出元素的順序是一致的
-public V put(K key, V value):把指定的鍵與指定的值添加到Map中
返回值:v
存儲鍵值對的時候,key不重複,v爲null
key重複,會使用新的value替換map中重複的value,返回被替換的value
-public V remove(Object key):把指定的鍵所對應的鍵值對元素,在Map中刪除
-public V get(Object key):根據指定的鍵,在Map集合中獲取對應的值。
返回值:
key存在,返回對應的value值
key不存在,返回null
-boolean containsKey(Object key)判斷集合中是否含有指定的鍵
包含返回true 不包含返回false
map集合的遍歷
方式1:通過鍵找值的方式
Map集合的方法:
Set<K> keySet() 返回此映射中包含的鍵的Set視圖
實現步驟
1.使用Map集合彙總的方法keySet(),把Map中的所有key取出來,存儲到一個Set集合中
2.遍歷Set集合,獲取Map集合中的每一個key
3.通過Map集合中的方法get(key),通過key找到value
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class DemoMap {
public static void main(String[] args) {
show01();
show02();
show03();
show04();
show05();
}
private static void show01(){
Map<String,String> map = new HashMap<>();
String v1 = map.put("吳奇隆","劉詩詩");
String v2 = map.put("吳奇隆","劉詩詩2");
System.out.println("v1:"+v1+" v2:"+v2);
System.out.println(map);
map.put("楊過","小龍女");
System.out.println("==================");
}
private static void show02(){
Map<String,Integer> map = new HashMap<>();
map.put("趙麗穎",168);
map.put("楊穎",165);
map.put("林志玲",178);
System.out.println(map);
int a = map.remove("林志玲");
System.out.println(a);
System.out.println(map);
System.out.println(map.remove("林志穎"));
System.out.println("==================");
}
private static void show03(){
Map<String,Integer> map = new HashMap<>();
map.put("趙麗穎",168);
map.put("楊穎",165);
map.put("林志玲",178);
System.out.println(map.get("楊穎"));
System.out.println(map.get("迪麗熱巴"));
System.out.println("==================");
}
private static void show04(){
Map<String,Integer> map = new HashMap<>();
map.put("趙麗穎",168);
map.put("楊穎",165);
map.put("林志玲",178);
System.out.println(map.containsKey("趙麗穎"));
System.out.println(map.containsKey("zhaoliying"));
System.out.println("==================");
}
private static void show05(){
Map<String,Integer> map = new HashMap<>();
map.put("趙麗穎",168);
map.put("楊穎",165);
map.put("林志玲",178);
Set<String> set=map.keySet();
for(String s:set){
System.out.println(s+":"+map.get(s));
}
System.out.println("====================");
Iterator<String> it = set.iterator();
while(it.hasNext()){
String s1 = it.next();
Integer h = map.get(s1);
System.out.println(s1+":"+h);
}
}
}