1 package LS_14;
2
3 import java.util.Collection;
4 import java.util.HashMap;
5 import java.util.Map;
6 import java.util.Set;
7
8 public class TestMap {
9 //map的接口的特点
10 //键值对的形式
11 //键是唯一的,一个只能对应一个值;但是一个值可以有多个键映射
12 //HashMap是其实现类
13
14 public static void main(String[] args) {
15 Map map = new HashMap();
16 //添加值,键值都是没有要求类型的
17 //一般是键-》String ,值-》Object
18 map.put(1, 1);
19 map.put("gok", 1);
20 map.put(new Object(), 1);
21 map.put(true, 1);
22 System.out.println(map);
23
24 //获取值
25 System.out.println(map.get(1));
26
27 //删除键指定的键//还有删除指定的键值对remove(2,3)
28 //当没有指定键的时候返回null,要注意空指针异常
29 Object obj = map.remove(1);
30 System.out.println(obj);
31 System.out.println(map);
32
33 System.out.println(map.containsValue(1));
34 System.out.println(map.isEmpty());
35 System.out.println(map.size());
36 //当键一样时,后面的会替换前面的
37
38 System.out.println("======================");
39 //集合视图
40 //keySet():获取集合中的所有的键
41 Set<Object> set = map.keySet();
42 for (Object key : set) {
43 System.out.println(key);
44 }
45
46 //values():获取集合中的所有值
47 Collection<Object> coll = map.values();
48 for (Object value : coll) {
49 System.out.println(value);
50 }
51 System.out.println("==============");
52 //entrySet():获取键值对的
53 Set<Map.Entry<Object, Object>> entrySet = map.entrySet();
54 for (Map.Entry<Object, Object> entry : entrySet) {
55 System.out.println(entry);
56 }
57
58 //线程不同步,效率比较高
59 }
60 }