码迷,mamicode.com
首页 > 其他好文 > 详细

集合map

时间:2016-05-26 10:13:49      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

Map集合

 * 1.Map集合中存储的是一对儿元素。键和值。之间存在着对应关系。

 * 2.必须要保证键的唯一性。

 * 3.如果存储键相同,值会覆盖。

 

 

集合框架-Map-常见方法

 

put(K key, V value) 
    将指定的值与此映射中的指定键关联(可选操作)。

返回: 

返回与 key 相关联的先前值,如果 key 没有映射关系,则返回 null(返回 null 可能还表示映射以前将null 与指定键关联)

 

 

get(Object key) 
  

返回: 

指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null



 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    @Test
    public void test1(){
        /*
         * 需求:将学号和对应的学生姓名进行存储。
         */
        Map<Integer,String> map = new HashMap<Integer,String>();
        //存储键值对。
        System.out.println(map.put(2,"小花"));//之前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null
        System.out.println(map.put(2,"麻子"));//小花,麻子之前是小花
        map.put(6,"赵六");
        map.put(1,"王五");
        System.out.println(map);//并没有排序,并且不是有序。2=麻子,“小花”被覆盖
        System.out.println(map.get(1));//王五
    }
测试结果:
    null
    小花
    {1=王五, 2=麻子, 6=赵六}
    王五 

 

 

集合框架-Map-keySet方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Set底层用的是Map集合的Key
 
//    * 获取Map中的所有键值对。
//    * Map取出所有元素的原理:将map先转成set,再使用迭代器。
//    * 
     
    @Test
    public void test2(){
          Map<String,String> map = new HashMap<String,String>();
             
            map.put("zhangsan","北京");
            map.put("lisi","上海");
            map.put("wangwu","成都");
            map.put("zhaoliu","广州");
            System.out.println(map);
  
            //第一种方式:
            //获取map集合中的键的集合。keySet();
            Set<String> keySet = map.keySet();
             
            //通过set集合获取迭代器。
            Iterator<String> it = keySet.iterator();
             
            while(it.hasNext()){
                String key = it.next();
                String value = map.get(key);
                System.out.println(key+":"+value);
            }
    }

 

集合框架-Map-entrySet方法&values方法

 

接口 Map.Entry<K,V>。这个接口是非常重要的,以前Java培训的老师说过,Entry接口是Map接口的内部接口,因为要访问Map接口中的成员变量,所以就定在内部了,而且它和Map的关系是,先有Map接口中的成员变量,之后才有了Entry接口,表示成员变量之间的关系,所以就定在了里面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@Test
public void test3(){
    Map<String,String> map = new HashMap<String,String>();
     
    map.put("zhangsan","北京");
    map.put("lisi","上海");
    map.put("wangwu","成都");
    map.put("zhaoliu","广州");
    System.out.println(map);
 
//第二种方式:
    //获取map集合中所有的键值关系集合。entrySet,键值关系的类型是 Map.Entry.
     
    Set<Map.Entry<String, String>> entrySet = map.entrySet();
     
    //迭代器取出所有的关系对象。
    Iterator<Map.Entry<String, String>> it = entrySet.iterator();
    while(it.hasNext()){
         
        Map.Entry<String, String> me = it.next();
        String key = me.getKey();
        String value = me.getValue();
         
        System.out.println(key+"::"+value);
    }
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Test
public void test4(){
    Map<String,String> map = new HashMap<String,String>();
     
    map.put("zhangsan","北京");
    map.put("lisi","上海");
    map.put("wangwu","成都");
    map.put("zhaoliu","广州");
    System.out.println(map);
     
    //第三种方式:获取值的集合。values();
     
    Collection<String> values = map.values();
     
    Iterator<String> it = values.iterator();
    while(it.hasNext()){
        String value = it.next();
        System.out.println(value);
    }
     
}

集合map

标签:

原文地址:http://www.cnblogs.com/javastudy123/p/5529859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!