目录
🥬Map
Map
是一个接口类,该类没有继承自
Collection
,该类中存储的是
<K,V>
结构的键值对,并且
K
一定是唯一的,不能重复
。
🍌Map常用方法的使用
1、V put(K key, V value) //设置 key 对应的 value
map.put(1,"hello");
map.put(2,"world");
//结果:{1=hello, 2=world}
2、V get(Object key) //返回 key 对应的 value
map.get(1);
//结果:hello
3、V getOrDefault(Object key, V defaultValue) //返回 key 对应的 value,key 不存在,返回默认值
String str=map.getOrDefault(2,"hi");
String str1=map.getOrDefault(3,"hi");
//结果:
//str world
//str1 hi
4、V remove(Object key) //删除 key 对应的映射关系
map.remove(1);
System.out.println(map);
//结果:{2=world}
5、Set<K> keySet() 返回所有 key 的不重复集合
map.put(1,"hi");
map.put(2,"thanks");
map.put(2,"what");
map.put(3,"how");
System.out.println(map.keySet());
//结果:[1, 2, 3]
6、Set<Map.Entry<K, V>> entrySet() //返回所有的 key-value 映射关系
map.put(1,"hi");
map.put(2,"thanks");
map.put(3,"how");
for(Map.Entry<Integer, String> entry : map.entrySet()){
System.out.println(entry.getKey() + "--->" + entry.getValue());
}
System.out.println();
//结果:
1--->hi
2--->thanks
3--->how
7、boolean containsKey(Object key) //判断是否包含 key
boolean
containsValue
(Object value) //判断是否包含
value
map.put(1,"hi");
map.put(2,"thanks");
map.put(3,"how");
map.containsKey(1);//true
map.containsKey(5);//false
map.containsValue("hi");//true
map.containsValue("hello");//false
补充说明:Map.Entry<K, V>
是
Map
内部实现的用来存放
<key, value>
键值对映射关系的内部类
,该内部类中主要提供了
<key, value>
的获取,
value
的设置以及Key的比较方式。使用Map.Entry类,你可以得到在同一时间得到所有的信息
(注意:Map.Entry<K,V>
并没有提供设置
Key
的方法 )
K getKey() //返回 entry 中的 key
V getValue() //返回 entry 中的 value
V setValue(V value) //将键值对中的value替换为指定value
注意:
1. Map
是一个接口,不能直接实例化对象
,如果
要实例化对象只能实例化其实现类
TreeMap
或者
HashMap 。
2. Map中存放键值对的Key是唯一的,value是可以重复的 。
3. 在
Map
中插入键值对时,
key
不能为空,否则就会抛
NullPointerException
异常
,但是
value可以为空 。
4. Map中的Key可以全部分离出来,存储到Set中