Java中的Map接口——学习小结

1.什么是Map

Map是Java集合中的三大接口之一,其存储形式为键(Key)值(Value)对,是程序开发中大部分数据存储时所采用的存储形式。如:MySQL、JSON、XML。
Map形式称为双边队列,即Key与Value互相对应。但需要注意:Key是唯一的,不可能有多个重复的Key。而Value是可重复的。

具体形式如表格:


Key Value
姓名 燕双鹰
年龄 30
性别

2.Map接口的实现类

interface Map<K, V>
--| class HashMap<K, V>	哈希表
--| class TreeMap<K, V>	底层是树形结构,存储要求K有对应的排序方式

3.方法

3.1 增:

put(K k, V v);
 存入一个键值对类型,K和V都要符合泛型约束
putAll(Map < ? extends K, ? extends V > map);
 存入另一个Map双边队列,并且要求添加的Map双边队列中的K和V都要和当前Map中存储的K和V一致。

3.2 删:

remove(Object k);
 删除对应K的键(Key)值(Value)对

3.3 改:

put(K k, V v);
 对应当前K存在,修改对应内容

3.4 查:

int size();
 当前Map双边队列中,有效键值对个数
boolean isEmpty();
 是否为空
boolean containsKey(Object key);
 判断指定的Key是否存在
boolean containsValue(Object value);
 判断指定的Value是否存在
Set<K> keySet();
 返回整个Map双边队列中所有Key对应的Set集合
 	【注意:】	
	一个方法使用set结尾,表示该方法返回值是一个集合类型,大多数情况下都是Set类型
Collection<V> values();
 返回整个Map双边队列中所有Value对应的Collection集合
 	【注意】
 	方法名如果是一个复数,返回值类型集合或者数组情况居多

4.EntrySet

Entry可以认为是键值对对象。
定义在Map类内

class Entry<K,V> {
	K k;
	V v;
	}
	K, V 是完全依赖于Map约束的,这里可以认为Entry里保存的是每一个键值对类对象。

Map中提供了一个方法

Set<Entry<K, V>> entrySet
返回值是键值对类对象Set集合
Set集合中存储的是Entry类型
Entry类型是带有泛型的

代码:

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Demo1 {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String, String>();
		
		map.put("吴京", "谢楠");
		map.put("邓超", "娘娘");
		map.put("黄磊", "孙莉");
		map.put("王宝强", "XX");
		
		Set<Map.Entry<String, String>> entrySet = map.entrySet();
		
		System.out.println(entrySet);
	}
}
运行结果:
[邓超=娘娘, 吴京=谢楠, 黄磊=孙莉, 王宝强=XX]

5.TreeMap

K是需要有对应的比较方式,如果没有比较方式,则无法存入
推荐使用Comparator接口。

发布了10 篇原创文章 · 获赞 15 · 访问量 3549

猜你喜欢

转载自blog.csdn.net/qq_41986648/article/details/104589984
今日推荐