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);