Map集合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map集合相关的知识,希望对你有一定的参考价值。

在Map里面每一次可以存放两个对象,所有的对象按照“key = value”的形式保存。也就是说通过key可以找到对应的value。

Collection存放数据的目的是为了输出,而Map存放数据的目的是为了查找。

在java.util中Map接口里面定义的方法如下:

public V put(K key, V value) 普通 向Map集合之中保存数据
public V get(Object key) 普通 根据key取得对应的value数据
public boolean containsKey(Object key) 普通 判断key是否存在
public Set<Map.Entry<K,V>> entrySet() 普通 将Map集合转为Set集合
public Set<K> keySet() 普通 取得所有的key

根据以上的方法实际上就可以得出一结论:在Map集合之中如果要保存数据,那么数据的key一定不可能重复,如果真发生了重复,那么将会出现覆盖的情况。

在使用Map接口的时候比较常用的两个子类:HashMap、Hashtable、TreeMap(根据key排序)。

 1 package cn.test;
 2 
 3 import java.util.HashMap;
 4 import java.util.Map;
 5 
 6 public class TestLocal{
 7     public static void main(String[] args) {
 8         Map<String,String> map = new HashMap<String,String>();
 9         map.put("李洋", "好孩子");
10         map.put("张哲", "美女");
11         map.put("詹秉承", "二货");
12         map.put(null, "空");
13         map.put("空", null);
14         map.put(null, null);
15         map.put("庞涵", "单身狗");
16     System.out.println(map);
17     System.out.println(map.get("李洋"));
18     System.out.println(map.get("李扣"));
19     }
20 }

结果:

{null=null, 李洋=好孩子, 张哲=美女, 詹秉承=二货, 空=null, 庞涵=单身狗}
好孩子
null

总结:只允许存放一个null的key信息,因为会出现覆盖的情况。

  在整个过程之中你可以明显的发现,如果存在的key进行查找则返回对应的value,如果不存在的key查找时返回的就是null。

2、Iterator输出Map(核心

给出Map如何使用Iterator输出的操作步骤:

· 利用Map接口中的entrySet()方法将Map集合变为Set集合;

· Set接口之中提供有iterator()方法,可以利用此方法将Set集合使用Iterator输出;

· 利用Iterator迭代后取出每一个的Map.Entry对象,并且进行key与value的分离。

 1 package cn.test;
 2 
 3 import java.util.Iterator;
 4 import java.util.Map;
 5 import java.util.Set;
 6 import java.util.TreeMap;
 7 
 8 public class TestLocal{
 9     public static void main(String[] args) {
10         Map<String,String> map = new TreeMap<String,String>();
11         map.put("liyang", "好孩子");
12         map.put("zhangzhe", "美女");
13         map.put("zhancheng", "二货");
14         map.put("panghan", "单身狗");
15         Set<Map.Entry<String,String>> set = map.entrySet();
16         Iterator<Map.Entry<String,String>> iter = set.iterator();
17         while(iter.hasNext()){
18             Map.Entry<String, String> me = iter.next();
19             System.out.println(me.getKey() + " = " + me.getValue());
20         }
21     }
22 }

结果:

liyang = 好孩子
panghan = 单身狗
zhancheng = 二货
zhangzhe = 美女

在以后的开发之中,虽然主要的输出模式都是利用Collection完成,但是并不意味着不使用Map输出。

以上是关于Map集合的主要内容,如果未能解决你的问题,请参考以下文章

201621123037 《Java程序设计》第9周学习总结

作业09-集合与泛型

laravel特殊功能代码片段集合

CSP核心代码片段记录

Groovymap 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )

将多个输出中的hls属性设置为单独的片段代码