- 1 package cn.temptation;
- 2
- 3 import java.util.HashMap;
- 4 import java.util.Map;
- 5
- 6 public class Sample01 {
- 7 public static void main(String[] args) {
- 8 /*
- 9 * Collection接口及其子接口、实现类 等 称为 单列集合
- 10 * Map接口及其子接口、实现类等 称为 双列集合
- 11 *
- 12 * 接口 Map<K,V>:映射,将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
- 13 *
- 14 * Map(映射)由两部分组成:键(Key)和值(Value)
- 15 *
- 16 * 特点:
- 17 * 1、一个映射不能包含重复的键
- 18 * 2、每个键最多只能映射到一个值
- 19 * 3、映射中的键值对是无序的
- 20 *
- 21 * 理解Map(映射):
- 22 * 联想地图,能唯一确定地点使用的是坐标,地图上没有两个相同的坐标
- 23 * 但是地图上可以有相同的地名,比如不同省份下的区县可能名字相同,但是它们的坐标是不同的
- 24 * 地图上的坐标就是键,地名就是值
- 25 *
- 26 * Map<K,V>接口的常用成员方法:
- 27 * 1、添加功能
- 28 * V put(K key, V value) :将指定的值与此映射中的指定键关联(可选操作)。
- 29 * 返回:以前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联)。
- 30 *
- 31 * 2、删除功能
- 32 * void clear() :从此映射中移除所有映射关系(可选操作)。
- 33 * V remove(Object key) :如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
- 34 *
- 35 * 3、判断功能
- 36 * boolean containsKey(Object key) :如果此映射包含指定键的映射关系,则返回 true。
- 37 * boolean containsValue(Object value) :如果此映射将一个或多个键映射到指定值,则返回 true。
- 38 *
- 39 * boolean isEmpty() :如果此映射未包含键-值映射关系,则返回 true。
- 40 *
- 41 * 4、长度功能
- 42 * int size() :返回此映射中的键-值映射关系数。
- 43 *
- 44 */
- 45Map map = newHashMap<>();
- 46
- 47System.out.println("map:" + map);// map:{}
- 48
- 49 // 1、添加功能
- 50 // 如果把Map的键值对理解为夫妻的话,那么其put方法可以认为是返回伴侣的前任
- 51 // System.out.println("map`s put:" + map.put("高祖", "杨开慧")); // map`s put:null
- 52 // System.out.println("map`s put:" + map.put("高祖", "贺子珍")); // map`s put:杨开慧
- 53 // System.out.println("map`s put:" + map.put("高祖", "江青")); // map`s put:贺子珍
- 54
- 55map.put("秦皇", "嬴政");
- 56map.put("汉武", "刘彻");
- 57map.put("唐宗", "李世民");
- 58map.put("宋祖", "赵匡胤");
- 59map.put("一代天骄", "成吉思汗");
- 60 // 键值对映射关系中,键相同的,通过put添加后显示的是最后的那个键值对或者说是最新的那个键值对
- 61map.put("一代天骄", "蒋中正");
- 62
- 63System.out.println("map:" + map);// map:{汉武=刘彻, 宋祖=赵匡胤, 一代天骄=蒋中正, 唐宗=李世民, 秦皇=嬴政}
- 64
- 65System.out.println("----------------------------------------------------");
- 66
- 67 // 2、删除功能
- 68 // map.clear();
- 69 // System.out.println("map:" + map); // map:{}
- 70
- 71map.remove("唐宗");
- 72System.out.println("map:" + map);// map:{汉武=刘彻, 宋祖=赵匡胤, 一代天骄=蒋中正, 秦皇=嬴政}
- 73
- 74System.out.println("map`s remove:" + map.remove("宋祖"));// map`s remove:赵匡胤
- 75System.out.println("map:" + map);// map:{汉武=刘彻, 一代天骄=蒋中正, 秦皇=嬴政}
- 76
- 77System.out.println("map`s remove:" + map.remove("西楚霸王"));// map`s remove:null
- 78
- 79System.out.println("----------------------------------------------------");
- 80
- 81 // 3、判断功能
- 82System.out.println("map`s containsKey:" + map.containsKey("秦皇"));// map`s containsKey:true
- 83System.out.println("map`s containsKey:" + map.containsKey("西楚霸王"));// map`s containsKey:false
- 84
- 85System.out.println("map`s containsValue:" + map.containsValue("刘彻"));// map`s containsValue:true
- 86System.out.println("map`s containsValue:" + map.containsValue("刘秀"));// map`s containsValue:false
- 87
- 88 map.clear();
- 89System.out.println("map`s isEmpty:" + map.isEmpty());// map`s isEmpty:true
- 90
- 91 // 4、长度功能
- 92System.out.println("map`s size:" + map.size());// map`s size:0
- 93 }
- 94}
来源: http://www.bubuko.com/infodetail-1990539.html