1 package com.common.api; 2 3 import java.util.Map; 4 import java.util.Set; 5 import java.util.ArrayList; 6 import java.util.Collection; 7 import java.util.HashMap; 8 import java.util.Iterator; 9 10 /* 11 * Map 集合的基本特点 12 * 1、该集合存储键值对,一对一对存储,而且键值不能重复 13 * 2、一个映射不能包含重复的键 14 * 15 * Map 功能函数: 16 * 1、添加 17 * V put(K key, V value) 将指定的值与该映射中的指定键相关联(可选操作)。 18 * 注意:put方法返回key对应的原来的值,添加时如果出现 19 * 相同的键,则后添加的值会覆盖之前的值,并将之前的值返回 20 * void putAll(Map<? extends K,? extends V> m) 将指定地图的所有映射复制到此映射(可选操作)。 21 * 2、删除 22 * void clear() 从该地图中删除所有的映射(可选操作)。 23 * V remove(Object key) 如果存在(从可选的操作),从该地图中删除一个键的映射。 24 * 3、判断 25 * boolean containsKey(Object key) 如果此映射包含指定键的映射,则返回 true 。 26 * boolean containsValue(Object value) 如果此地图将一个或多个键映射到指定的值,则返回 true 。 27 * boolean equals(Object o) 将指定的对象与此映射进行比较以获得相等性。 28 * boolean isEmpty() 如果此地图不包含键值映射,则返回 true 。 29 * 4、获取 30 * V get(Object key) 返回到指定键所映射的值,或 null如果此映射包含该键的映射。 31 * int size() 返回此地图中键值映射的数量。 32 * Collection<V> values() 返回此地图中包含的值的Collection视图。 33 * Set<Map.Entry<K,V>> entrySet() 返回此地图中包含的映射的Set视图。 34 * 这种数据类型就是Map.Entry 35 * Set<K> keySet() 返回此地图中包含的键的Set视图。 Set集合具有迭代器,所以可以迭代取出所有值 36 * 5、修改 37 * default V replace(K key, V value) 只有当目标映射到某个值时,才能替换指定键的条目。 38 * 39 * Map 40 * |----Hashtable 底层是哈希表数据结构,不可以存入null键值,该集合是线程同步的 41 * |----HashMap 底层是哈希表数据结构,并允许使用null键值,该集合是线程不同步的 42 * |----TreeMap 底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进行排序 43 * 和TreeSet很像,其实TreeSet底层就是使用了TreeMap的集合 44 * 45 * Map 集合取出原理:将Map转换为Set,然后使用Set集合的迭代器取出 46 * 47 * Map 扩展知识 48 * map集合被使用是因为具备映射关系 49 */ 50 public class MapDemo { 51 public static void method_map01() 52 { 53 Map<String,String> map=new HashMap<String,String>(); 54 System.out.println("put 第一次返回的值:"+map.put("01","zhangsan")); 55 System.out.println("put 第二次返回的值:"+map.put("01","zhangsan01")); 56 map.put("02","lisi"); 57 map.put("03","wangwu"); 58 System.out.println("containsKey:"+map.containsKey("01")); 59 System.out.println("remove:"+map.remove("01")); 60 System.out.println(map); 61 System.out.println("get:"+map.get("02")); 62 map.put(null,"null"); 63 System.out.println("get null :"+map.get("null")); 64 map.put("04",null); 65 System.out.println("get null key:"+map.get("04")); 66 Collection<String> a=map.values(); 67 System.out.println(a); 68 69 Set<String> keySet=map.keySet(); 70 Iterator<String> it=keySet.iterator(); 71 while(it.hasNext()) 72 { 73 String key=it.next(); 74 System.out.println("key :"+key); 75 System.out.println("value :"+map.get(key)); 76 } 77 78 Set<Map.Entry<String,String>> entrySet=map.entrySet(); 79 Iterator<Map.Entry<String,String>> it1=entrySet.iterator(); 80 while(it1.hasNext()) 81 { 82 Map.Entry<String,String> me=(Map.Entry) it1.next(); 83 String key=me.getKey(); 84 String value=me.getValue(); 85 System.out.println("key:"+key+" value: "+value); 86 } 87 } 88 public static void main(String[] args) { 89 // TODO Auto-generated metho d stub 90 method_map01(); 91 } 92 }
执行结果如下:
put 第一次返回的值:null put 第二次返回的值:zhangsan containsKey:true remove:zhangsan01 {02=lisi, 03=wangwu} get:lisi get null :null get null key:null [null, lisi, wangwu, null] key :null value :null key :02 value :lisi key :03 value :wangwu key :04 value :null key:null value: null key:02 value: lisi key:03 value: wangwu key:04 value: null
来源:https://www.cnblogs.com/redrose2100/p/12467845.html