Map集合遍历的四种方式理解和简单使用

~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值

1:无非就是通过map.keySet()获取到值,然后根据键获取到值

  for(String s:map.keySet()){             System.out.println("key : "+s+" value : "+map.get(s));      }

2:通过Map.Entry(String,String) 获取,然后使用entry.getKey()获取到键,通过entry.getValue()获取到值

  for(Map.Entry<String, String> entry : map.entrySet()){             System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());         }

3:其中通过Iterator也是为了最终获得entry,所以理解其用法,可以很好的使用和掌握

 1 package com.bie;
 2 
 3 import java.util.HashMap;
 4 import java.util.Iterator;
 5 import java.util.Map;
 6 
 7 /** 
 8 * @author BieHongLi 
 9 * @version 创建时间:2017年2月25日 下午8:58:54 
10 * 
11 */
12 public class MapTest01 {
13 
14     public static void main(String[] args) {
15         Map<String, String> map=new HashMap<String, String>();
16         map.put("张三1", "男");
17         map.put("张三2", "男");
18         map.put("张三3", "男");
19         map.put("张三4", "男");
20         map.put("张三5", "男");
21         
22         //第一种遍历map的方法,通过加强for循环map.keySet(),然后通过键key获取到value值
23         for(String s:map.keySet()){
24             System.out.println("key : "+s+" value : "+map.get(s));
25         }
26         System.out.println("====================================");
27         
28         //第二种只遍历键或者值,通过加强for循环
29         for(String s1:map.keySet()){//遍历map的键
30             System.out.println("键key :"+s1);
31         }
32         for(String s2:map.values()){//遍历map的值
33             System.out.println("值value :"+s2);
34         }
35         System.out.println("====================================");    
36         
37         //第三种方式Map.Entry<String, String>的加强for循环遍历输出键key和值value
38         for(Map.Entry<String, String> entry : map.entrySet()){
39             System.out.println("键 key :"+entry.getKey()+" 值value :"+entry.getValue());
40         }
41         System.out.println("====================================");
42         
43         //第四种Iterator遍历获取,然后获取到Map.Entry<String, String>,再得到getKey()和getValue()
44         Iterator<Map.Entry<String, String>> it=map.entrySet().iterator();
45         while(it.hasNext()){
46             Map.Entry<String, String> entry=it.next();
47             System.out.println("键key :"+entry.getKey()+" value :"+entry.getValue());
48         }
49         System.out.println("====================================");
50         
51     }
52     
53     
54 }

4:Map的一些常用的知识点,和取值的变形形式,都需要掌握和了解

 1 package com.bie;
 2 
 3 import java.util.Collection;
 4 import java.util.HashMap;
 5 import java.util.Map;
 6 import java.util.Set;
 7 
 8 /** 
 9 * @author BieHongLi 
10 * @version 创建时间:2017年2月26日 上午11:29:59 
11 * 
12 */
13 public class MapTest02 {
14 
15     public static void main(String[] args) {
16         //1:key,value都是object类型的
17         //2:key必须是唯一的,不唯一,那么后面的value会把前面的value覆盖
18         //3:对于HashMap,key可以为空
19         //4:value可以为空,也可以为空
20         //5:HashTable的key和value不能为空
21         //6:properties的key和value必须为String类型的
22         Map<String , String> map=new HashMap<>();
23         map.put("null", "this is null 1");
24         map.put("null", "this is null 2");
25         System.out.println(map.size());
26         System.out.println(map.get(null));
27         
28         System.out.println("=============================");
29         //循环显示map类型的key以及对应的value
30         //三个集合,key的集合,value的集合,键值对的集合
31         Set<String> keys=map.keySet();
32         for(String s:keys){
33             System.out.println(s);
34         }
35         System.out.println("=============================");
36         Collection<String> values=map.values();//值的集合
37         System.out.println(values);
38         System.out.println("=============================");
39         Set<Map.Entry<String, String>> entrys=map.entrySet();//键值对的集合
40         for(Map.Entry<String, String> entry:entrys){
41             System.out.println(entry.getKey()+" "+entry.getValue());
42         }
43         
44     }
45 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小勇DW3

HashMap 与 ConcrrentHashMap 使用以及源码原理分析

数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为...

1713
来自专栏用户2442861的专栏

Java中如何遍历Map对象的4种方法

既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtabl...

551
来自专栏desperate633

Java的HashMap中的常用方法总结遍历HashMap打印HashMap根据HashMap的value进行排序

HashMap在编程中是一个非常有用的工具,使用的频率很高,所以本文简单总结一下hashmap的常用方法

691
来自专栏电光石火

Java遍历Map对象的四种方式

关于java中遍历map具体哪四种方式,请看下文详解吧。 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 Map<I...

29510
来自专栏Jed的技术阶梯

常见Java集合的实现细节(一):Map和Set的关系

这些接口和类名如此相似绝不是偶然的现象,实际上,这些Map集合的key有一个特征:所有的key不能重复,key之间没有顺序,也就是说,这些Map的key可以组成...

722
来自专栏俞其荣的博客

Android Architecture Component之Lifecycle解析HeaderLifecyclePart 1Part 2Part 3Footer

终于到了最后的关头,Android Architecture Component 系列的最后一节内容。今天给大家带来的就是 Lifecycle 的解析。

1254
来自专栏码匠的流水账

聊聊flink的OperatorStateBackend

flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/OperatorSta...

622
来自专栏小筱月

java map遍历、排序,根据value获取key

若要取 map 中 value 的最大值 或 与之对应的 key(整型或浮点型):可利用list

1062
来自专栏微信公众号:Java团长

从代码层读懂 Java HashMap 的实现原理

Hashmap继承于AbstractMap,实现了Map、Cloneable、Java.io.Serializable接口。它的key、value都可以为nul...

842
来自专栏Albert陈凯

如何对Scala中集合(Collections)进行排序

文章标题: 《如何对Scala中集合(Collections)进行排序》 本文链接: http://www.iteblog.com/archives/1171...

2385

扫码关注云+社区