Map

Map接口:

  • Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式储存的,能够实现根据key快速查找value
  • Map中的键值对以Entry类型的对象实例形式存在
  • 键(key)不可重复,value值可以
  • 一个value可以跟很多key形成对应关系,但是一个key只能映射到一个value
  • Map支持泛型,形式如:Map<K,V>

HashMap:

  • HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现
  • HashMap中的Entry对象是无序排列的
  • Key值和value值都可以为null,但一个HashMap只能有一个key值为null的映射(key值不可重复)

Map的增删改查:

 1 import java.util.*;
 2 class MapDemo 
 3 {
 4     public static void main(String[] args) 
 5     {
 6         Map< String, Student> map = new HashMap<String,Student>();
 7         put(map);
 8         //System.out.println(map.size());//其size方法返回map内部元素的数量
 9         testKeySet(map);
10 
11         map.remove("1");//Map接口的删除方法,根据键删除该键映射的值
12         System.out.println("删除后");
13         testKeySet(map);
14     }
15 
16 
17     //Map接口的添加方法
18     public static void put(Map< String, Student> map)
19     {
20         map.put("1",new Student("1","乔布斯"));
21         map.put("2",new Student("2","比尔盖茨"));
22 
23         //通过其键返回其值
24         System.out.println(map.get("1").id+":"+map.get("1").name);
25     }
26 
27     //利用put方法修改Map中已有的映射
28     public static void testModify(Map<String ,Student> map,int i,Student newStudent)
29     {
30         //根据Map集合一个键只能对应一个值的特点,键不变,而值改变
31         map.put(i,newStudent);
32     }
33 
34 
35     //遍历Map集合(通过keySet)
36     public static void testKeySet(Map<String ,Student> map)
37     {
38         //通过keySet方法,返回Map中的所有键的Set集合
39         Set<String> keyset = map.keySet();
40         //遍历keySet,取得每一个键,再使用get方法取得每个键对应的value
41         for (String stuId : keyset)
42         {
43             Student st = map.get(stuId);
44             System.out.println(st.id+":"+st.name);
45         }
46     }
47 
48     //通过entrySet方法来编辑Map
49     public void testEntrySet(Map< String, Student>map)
50     {
51         //通过entrySet方法,返回Map中的所有键值对
52         Set<Entry< String, Student>> entrySet = map.entrySet();
53         //通过for each 遍历entrySet
54         for(Entry<String, Student> entry : entrySet)
55         {
56             System.out.println("取得键:"+entry.getKey());
57             System.out.println("对应的值为:"+entry.getValue().name);
58         }
59     }
60 
61     
62 
63 }
64 
65 class Student
66 {
67     String name;
68     String id;
69     Student(String id, String name)
70     {
71         this.id = id;
72         this.name = name;
73     }
74 }
View Code

 

posted @ 2015-11-03 22:25  坚持坚持再坚持  阅读(208)  评论(0编辑  收藏  举报