Map:
- 将键映射到值得对象。一个映射不能包含重复得键;每个键最多只能映射到一个值;
- 是一种数据存储类型,例如实现学号和姓名这样有对应关系的数据存储;
- 一对一,比如一个学号对应一个姓名;
Map: key -> value,简单理解,key和value绑定,通过key就能找到value。
常用功能:
删除功能
void clear();
V remove(Objeect key)
判断功能
boolean containsKey(Object key)
boolean containsValue(Object value)
遍历功能
Set<Map.Entry<K,V>> entrySet()
获取功能
V get(Object key)
Set<k> keySet()
映射功能
V put(K key,V value)
Set<k> keySet()
- 创建Map对象
//key为String类型,value也为String类型
Map<String,String> map = new HashMap<String,String>();
- 添加Map对象
//V put(K key, V Value):就是将key映射到value;
//如果key存在,则覆盖,并返回新的value,不存在则返回null
//创建Map对象
Map<String,String> map = new HashMap<String,String>();
//添加对象
map.put("ITCAST001", "张三");
map.put("ITCAST002","李四");
System.out.println(map.put("ITCAST001", "王五"));
System.out.println(map.put("ITCAST004", "李九"));
输出结果:
V put(K key,V Value):就是将key映射到value,如果key存在,则覆盖value,并将value返回。如果不存在,则返回null;
key为ITCAST001已存在,重复添加此key,则张三被王五覆盖更新,key为ITCAST001映射的是value变为王五,并将被替换的旧value张三返回。不重复添加:返回null,如李九;
- 判断功能
//boolean containsKey(Object key)
System.out.println(map.containsKey("ITCAST001"));//true
//boolean containsValue(Object value)
System.out.println(map.containsValue("王五"));//true
//boolean isEmpty()
System.out.println(map.isEmpty());//true,存在映射
- 其他功能
//移除key为ITCAST001的映射关系
System.out.println(map.remove("ITCAST001"));
//查看map中映射
System.out.println(map);
//map中映射数目
System.out.println(map.size());
//通过key得到value
System.out.println(map.get("ITCAST002"));
输出结果:
- 获取功能
获取所有的key:Set<Object> keys = map.keySet();
Set返回所有的key值,但是不允许重复,因为key唯一。
//Set<K> keySet():以set的形式返回所有的key
Set<String> keys = map.keySet();
for (String key : keys) {
System.out.println(key);
}
输出结果:
获取所有的value: Collection<V> values():允许重复
Collection<String> values = map.values();
Collection是一个接口,它提供了一些对map遍历的操作
Collection<String> values = map.values();
for (String value : values) {
System.out.println(value);
}
结合起来,当我们添加完映射关系之后,可以利用上面两种方式结合起来,得到key和value。
//先获取key
Set<String> keys = map.keySet();
//遍历Map对象
for (String key : keys) {
//通过get方法得到value
String value = map.get(key);
System.out.println("key:"+ key + "---" + "value:" + value);
}
高级遍历:Set<Map.Entry<String,String>> entrys = map.entrySet();
map.entrySet()是map的一个遍历方法,返回类型是Set,作用是返回此映射中包含的映射关系的Set视图。
//比如当丈夫和媳妇是一对映射关系的话,可以这样遍历
Set<Map.Entry<String,String>> entrys = map.entrySet();
/ /遍历包含结婚证对象的集合
for (Map.Entry<String, String> entry : entrys) {
//获取每个单独的结婚证对象
String key = entry.getKey();
String value = entry.getValue();
//通过结婚证对象获取丈夫和媳妇
System.out.println("丈夫:" + key + "---" + "媳妇:" + value);
}
总结:后期继续修改,不够详细;