Java基础学习笔记--常用API之HashMap

梦想与她 提交于 2020-03-12 12:19:32
 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

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!