package com.map.遍历的3种方法;
import java.util.*;
public class HashMapDemo {
public static void main(String[] args) {
Map<Integer,String> map =new HashMap<>();
map.put(1, "德玛");
map.put(2, "剑姬");
map.put(3, "瞎子");
map.put(4, "薇恩");
map.put(5, "剑圣");//值可以重复
map.put(2, "剑圣");//当K值相同时,会替换之前的值
//根据key值来获取值
System.out.println(map.get(1));
System.out.println(map);
System.out.println(map.containsKey(1));
System.out.println(map.containsValue("瞎子"));
//删除
map.remove(3);//删除一个不存在的key值,不会进行操作
System.out.println(map);
//魑魅魍魉
/* map.clear();
System.out.println(map.size());*/
//遍历
//方法一:同获取键的集合,并遍历该集合,通过键来获取值
System.out.println("-------keySet--------");
Set<Integer> keys =map.keySet();
for(Integer x:keys){
System.out.println(x+","+map.get(x));
}
System.out.println("-------values--------");
//方法二:直接获取值放入collection集合中遍历输出,不能通过值来获取key
Collection<String> vs =map.values();
for(String v :vs){
System.out.println(v);
}
//方法三:entrySet() 直接获取键值set集合 。用于返回Map集合中所有的键值对(Entry)对象,以Set集合形式返回。
System.out.println("-------entrySet()--------");
Set<Map.Entry<Integer, String>> es=map.entrySet();
for(Map.Entry<Integer, String> entry: es){
System.out.println(entry);
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
}
}