1 package com.jdk7.chapter4;
2
3 import java.util.HashMap;
4 import java.util.Hashtable;
5 import java.util.Iterator;
6 import java.util.Map;
7 import java.util.TreeMap;
8
9 /**
10 * 集合之形式三》映射(Map),根据键得到值,不允许'键'重复,允许'值'重复,包含HashMap、HashTable、LinkedHashMap、TreeMap
11 * HashMap:允许最多一个'键'为null,多个'值'为null; 不支持线程同步(即多个线程可以同时写HashMap)
12 * HashTable:不允许键或值为null,支持线程同步(即同一时刻只能一个线程写HashTable)
13 * LinkedHashMap:保存记录的插入顺序,先插入的记录会先得到,允许最多一个'键'为null,多个'值'为null
14 * TreeMap:按键升序排列,不允许'键'为null,允许多个'值'为null
15 * @author Administrator
16 *
17 */
18 public class MapTest {
19 public static void init(Map map){
20 if(map==
null){
21 System.out.println("映射不能为空!"
);
22 }
23 map.put("001", "Hello"
);
24 map.put("002", "Lily"
);
25 map.put("003", "Lucy"
);
26 map.put("004", "Hanmei"
);
27 }
28 public static void printMap(Map map){
29 if(map==
null){
30 System.out.println("映射为空"
);
31 }
32 //先获取Map的所有键,获取的键值为无重复的Set,再依次遍历key集合
33 Iterator it =
map.keySet().iterator();
34 Object key =
null;
35 Object value =
null;
36 System.out.println("=======遍历key======="
);
37 while(it.hasNext()){
38 key =
it.next();
39 value =
map.get(key);
40 System.out.println("key: "+key+" value: "+
value);
41 }
42
43 Iterator itentry =
map.entrySet().iterator();
44 Map.Entry entry =
null;
45 System.out.println("=======遍历集合中的每条记录======="
);
46 while(itentry.hasNext()){
47 entry =
(Map.Entry)itentry.next();
48 System.out.println("key: "+entry.getKey()+" value: "+
entry.getValue());
49 }
50 System.out.println();
51 }
52
53 public static boolean containsKey(Map map, Object obj){
54 if(map==
null){
55 return false;
56 }
57 return map.containsKey(obj);
58 }
59
60 public static boolean containsValue(Map map, Object obj){
61 if(map==
null){
62 return false;
63 }
64 return map.containsValue(obj);
65 }
66 /**
67 *
68 * @param map
69
70 public static void add(Map map){
71 MapTest.init(map);
72 System.out.println("Map中是否包含Key>"+MapTest.containsKey(map, null));
73 System.out.println("Map中是否包含Value>"+MapTest.containsValue(map, "2222"));
74 map.put(null, "4444");
75 map.put(null, "2222");
76 map.put("005", null);
77 map.put("006", null);
78 MapTest.printMap(map);
79 }
80 */
81 public static void add(Map map,Object key, Object value){
82 MapTest.init(map);
83 if(!(MapTest.containsKey(map, key) &&
MapTest.containsValue(map, value))){
84 map.put(key, value);
85 }
86 }
87
88 public static void HashMap(){
89 System.out.println("===============HashMap映射==============="
);
90 Map map =
new HashMap();
91 MapTest.add(map,
null, "4444"
);
92 MapTest.add(map,
null, "2222"
);
93 MapTest.add(map, "005",
null);
94 MapTest.add(map, "006",
null);
95 MapTest.printMap(map);
96 }
97
98 public static void HashTable(){
99 System.out.println("===============HashTable映射==============="
);
100 Map map =
new Hashtable();
101 MapTest.init(map);
102 Object key = "005"
;
103 Object value = "700"
;
104 if(!(MapTest.containsKey(map, key) &&
MapTest.containsValue(map, value))){
105 map.put(key, value);
106 }
107 MapTest.printMap(map);
108 }
109
110 public static void linkedHashMap(){
111 System.out.println("===============linkedHashMap映射==============="
);
112 Map map =
new java.util.LinkedHashMap();
113 MapTest.add(map,
null, "4444"
);
114 MapTest.add(map,
null, "2222"
);
115 MapTest.add(map, "005",
null);
116 MapTest.add(map, "006",
null);
117 MapTest.printMap(map);
118 }
119
120 public static void treeMap(){
121 System.out.println("===============treeMap映射==============="
);
122 Map map =
new TreeMap();
123 MapTest.init(map);
124 Object key = "005"
;
125 Object value =
null;
126 if(!(MapTest.containsKey(map, key) &&
MapTest.containsValue(map, value))){
127 map.put(key, value);
128 }
129 MapTest.printMap(map);
130 }
131 public static void main(String[] args) {
132 MapTest mt =
new MapTest();
133 mt.HashMap();
134 mt.HashTable();
135 mt.linkedHashMap();
136 mt.treeMap();
137 }
138 }
139
140 执行结果:
141 ===============HashMap映射===============
142 =======遍历key=======
143 key:
null value: 2222
144 key: 004
value: Hanmei
145 key: 005 value:
null
146 key: 006 value:
null
147 key: 001
value: Hello
148 key: 002
value: Lily
149 key: 003
value: Lucy
150 =======遍历集合中的每条记录=======
151 key:
null value: 2222
152 key: 004
value: Hanmei
153 key: 005 value:
null
154 key: 006 value:
null
155 key: 001
value: Hello
156 key: 002
value: Lily
157 key: 003
value: Lucy
158
159 ===============HashTable映射===============
160 =======遍历key=======
161 key: 005 value: 700
162 key: 004
value: Hanmei
163 key: 003
value: Lucy
164 key: 002
value: Lily
165 key: 001
value: Hello
166 =======遍历集合中的每条记录=======
167 key: 005 value: 700
168 key: 004
value: Hanmei
169 key: 003
value: Lucy
170 key: 002
value: Lily
171 key: 001
value: Hello
172
173 ===============linkedHashMap映射===============
174 =======遍历key=======
175 key: 001
value: Hello
176 key: 002
value: Lily
177 key: 003
value: Lucy
178 key: 004
value: Hanmei
179 key:
null value: 2222
180 key: 005 value:
null
181 key: 006 value:
null
182 =======遍历集合中的每条记录=======
183 key: 001
value: Hello
184 key: 002
value: Lily
185 key: 003
value: Lucy
186 key: 004
value: Hanmei
187 key:
null value: 2222
188 key: 005 value:
null
189 key: 006 value:
null
190
191 ===============treeMap映射===============
192 =======遍历key=======
193 key: 001
value: Hello
194 key: 002
value: Lily
195 key: 003
value: Lucy
196 key: 004
value: Hanmei
197 key: 005 value:
null
198 =======遍历集合中的每条记录=======
199 key: 001
value: Hello
200 key: 002
value: Lily
201 key: 003
value: Lucy
202 key: 004
value: Hanmei
203 key: 005 value:
null
转载于:https://www.cnblogs.com/celine/p/8458860.html