Map是一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是整数。
在Map中键(key)可以使任意类型的对象。Map中不能有重复的键(Key),每个键(key)
都有一个对应的值(value)。
一个键(key)和它对应的值构成map集合中的一个元素。
Map中的元素是两个对象,一个对象作为键,一个对象作为值。键不可以重复,但是值可以重复。
Map<String,String> map = new HashMap<String, String>();
//添加方法
//put方法
map.put("文章", "马伊琍");
map.put("谢霆锋", "张柏芝");
map.put("谢霆锋", "张柏芝");
Map<String,String> map2 = new HashMap<String, String>();
map2.put("张三", "李四");
map2.put("狗娃","狗剩");
//putAll方法
map.putAll(map2);
System.out.println(map);
//获取方法
//get 传入键值,获取val值
System.out.println("获取的对象是:"+map.get("谢霆锋"));
//size 获取键值对的个数
System.out.println("一共有键值对数量:"+map.size()+"个");
//containsKey 判断是否包含某个键值
System.out.println("是否包含键值'谢霆锋'?"+map.containsKey("谢霆锋"));
//containsValue 判断是否包含某个值
System.out.println("是否包含值'张柏芝'?"+map.containsValue("张柏芝"));
//isEmpty 判断集合是否为空
System.out.println("集合是否为空?"+map.isEmpty());
//删除方法
//remove 返回删除的v值
System.out.println("删除的值是:"+map.remove("谢霆锋"));
//clear 没有返回值
map.clear();
System.out.println(map);
//isEmpty 判断集合是否为空
map.put(null, null);
System.out.println("集合是否为空?"+map.isEmpty());
//HashMap的存储原理与HashSet的存储原理相同,不同的只是HashSet根据的是元素,而HashMap存储位置根据的是键
//TreeMap的底层实现原理也是红黑二叉树,如何存储的键值对的键值具备自然顺序,它会根据存储的键值对的键值对存储的键值对进行排序.
//如果键值对的键不具备自然顺序,而又没有实现comparable接口饼子啊compareTo方法中定义比较规则或者对TreeMap传入比较器,那么编译就会报错
//HashTable,线程安全,但操作效率低,目前已被淘汰,不建议使用
TreeMap<String, String> treeMap= new TreeMap<String, String>();
treeMap.put("a", "001");
treeMap.put("d", "002");
treeMap.put("c", "004");
treeMap.put("b", "004");
System.out.println(treeMap);