package cn.hhy.test_01;
import java.util.HashMap;
import java.util.Map;
/*
* 学生的学号和姓名的映射关系
*
* Map存储键值对的元素
*
* Map集合的特点:将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
*
* Map和collections集合的区别:
* map集合存储元素是成对出现的:Map中键是唯一的,值是可以重复的
* collection集合存储元素是单独出现的:Collection的儿子Set的值是唯一的,而List的值是可以重复的
* 注意:
Map集合的数据结构值针对键有效,跟值无关
Collection集合的数据结构是针对元素有效
HashMap 和 TreeMap
*
* Map集合的功能概述:
* 1.删除功能:void clear()从此映射中移除所有映射关系(可选操作)。
* V remove(Object key):根据键删除键值对元素,并且把值返回
* 2.判断功能:
* boolean containsKey(Object key) 判断是否包含指定的键
* boolean containsValue(Object value) 判断是否包含指定的值
* boolean isEmpty()判断集合是否为空
* 3.获取功能:
* Set<Map.Entry<K,V>> entrySet()
* V get(Object key)返回指定键所映射的值
* Set<K> keySet() 获取集合中所有键的集合
* Collection<V> values() 获取集合中所有值得集合
* 4.添加功能: V put(K key,V value) 添加元素
* 如果键是第一次存储,就直接存储元素,返回null
* 如果键不是第一次存储,覆盖以前的值,返回以前的值。
* void putAll(Map<? extends K,? extends V> m)
* 5.长度功能:
* int size()返回此映射中的键-值映射关系数
*/
public class MapDemo {
public static void main(String[] args) {
// 创建集合对象
Map<String, String> map = new HashMap<String, String>();
// 添加元素V put(K key,V value) 添加元素
// map.put("hehaiyang", "2018262175");
// map.put("li", "666");
// System.out.println("put:"+map.put("hehaiyang", "2018262175"));
// System.out.println("put:"+map.put("li", "666"));
// System.out.println("put:"+map.put("li", "123"));
map.put("hhy", "123");
map.put("chen", "666");
map.put("li", "012");
map.put("liu", "145");
// 移除所有的键值对
// map.clear();
// V remove(Object key):根据键删除键值对元素,并且把值返回
// System.out.println("remove:" + map.remove("chen"));
// 不存在,返回的是null
// System.out.println("remove:" + map.remove("zhao"));
System.out.println("containsKey:" + map.containsKey("hhy"));
System.out.println("containsValue:" + map.containsValue("145"));
// int size()返回此映射中的键-值映射关系数
System.out.println("size:" + map.size());
// 判断是否非空
System.out.println("isEmpty:" + map.isEmpty());
// 输出集合名称
System.out.println("map:" + map);
}
}