【Java】Map集合綜述

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);

}

}

}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章