java 遍历Map的几种方法总结

一、迭代key&value

第一种方式:迭代entrySet

1.方法一

/**
 * entrySet集合for-each循环(推荐使用)
 * 这种方式必须声明泛型类型:
 * a.bizData使用Map接收必须得声明泛型;b.for-each()里的Entry的泛型控制可有可无
 * Map的泛型控制通常使用<String,Object>
 */
Map<String, Object> bizData = dataBus.getBizData();
for (Entry<String, Object> entry : bizData.entrySet()) {
    System.out.println(entry.getKey() + "=" + entry.getValue());
} 

2.方法二

/**
 * entrySet集合迭代
 */
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
    Entry<String, Object> entry = iterator.next();
    System.out.println(entry.getKey() + "=" + entry.getValue()); 
}

第二种方式:迭代keySet

3.方法三

/**
 * keySet集合迭代
 */
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
  //获取键
  String key = iterator.next().toString();//或String key = (String)iterator.next();
  //根据键获取值
  Object value = map.get(key);
  System.out.println("键:"+ key + ",值:" + value);
}

4.方法四

/**
 * keySet集合for-each循环
 */
for (String key:map.keySet()) {
  System.out.println(key + "=" + map.get(key));
}

5.小结

  注意:

    遍历Map类集合KV,推荐使用entrySet而不是keySet

  原因:

    keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value;

    而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。

  说明:

    values()返回的是V值集合,是一个list集合对象;keySet()返回的是K值集合,是一个Set集合对象;entrySet()返回的是K-V值组合集合。

二、只迭代key

//只遍历键
for (String key:map.keySet()) {
  System.out.println(key);
}

三、只迭代value

//只遍历值
for (Object val:map.values()) {
  System.out.println(val);
} 

以上就是java 遍历Map的几种方法总结的详细内容,更多关于java 遍历Map的资料请关注我们其它相关文章!

(0)

相关推荐

  • java 遍历Map及Map转化为二维数组的实例

    java 遍历Map及Map转化为二维数组的实例 实例代码: import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Test { public static void main(String[] args) { int a = 0, b = 0, c = 0; // 第一种:通过Map.keySet()遍历Map及将Map转化为二维数组 Map<String, String>

  • Java中遍历ConcurrentHashMap的四种方式详解

    这篇文章主要介绍了Java中遍历ConcurrentHashMap的四种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方式一:在for-each循环中使用entries来遍历 System.out.println("方式一:在for-each循环中使用entries来遍历");for (Map.Entry<String, String> entry: map.entrySet()) { System.out.pr

  • Java HashMap三种循环遍历方式及其性能对比实例分析

    本文实例讲述了Java HashMap三种循环遍历方式及其性能对比.分享给大家供大家参考,具体如下: HashMap的三种遍历方式 (1)for each map.entrySet() Map<String, String> map = new HashMap<String, String>(); for (Entry<String, String> entry : map.entrySet()) { entry.getKey(); entry.getValue();

  • Java HashMap 如何正确遍历并删除元素的方法小结

    (一)HashMap的遍历 HashMap的遍历主要有两种方式: 第一种采用的是foreach模式,适用于不需要修改HashMap内元素的遍历,只需要获取元素的键/值的情况. HashMap<K, V> myHashMap; for (Map.entry<K, V> item : myHashMap.entrySet()){ K key = item.getKey(); V val = item.getValue(); //todo with key and val //WARNI

  • Java四种遍历Map的方法

    选择适合的最好 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * Created by song on 2019/1/17. **/ public class MapT { public static void main(String[] args) { Map<Integer,String> map=new HashMap<>

  • Java实现Map集合遍历的四种常见方式与用法分析

    本文实例讲述了Java实现Map集合遍历的四种常见方式与用法.分享给大家供大家参考,具体如下: ~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1. 无非就是通过map.keySet()获取到值,然后根据键获取到值 for(String s:map.keySet()){ System.out.println("key : "+s+" value : "+map.get(s)); } 2. 通过Map.Entry(

  • 详解Java中list,set,map的遍历与增强for循环

    详解Java中list,set,map的遍历与增强for循环 Java集合类可分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. 关于增强for循环,需要注意的是,使用增强for循环无法访问数组下标值,对于集合的遍历其内部采用的也是Iterator的相关方法.如果只做简单遍历读取,增强for循环确实减轻不少的代码量. 集合概念: 1.作用:用于存放对象 2.相当于一个容器,里面包含着一组对象,其中的每个对象作为集合的一个元素出现 3.jav

  • JAVA8独有的map遍历方式(非常好用)

    使用JAV8 带来的map遍历方式使遍历非常简单 public class LambdaMap { private Map<String, Object> map = new HashMap<>(); @Before public void initData() { map.put("key1", "value1"); map.put("key2", "value2"); map.put("k

  • Java 遍历取出Map集合key-value数据的4种方法

    将map集合存数据与取出数据全部放在一个类MapTest中,方便阅读与查看 随便创建一个包,在包中新建一个class文件,(也可以不建包,直接新建一个class文件) 新建class文件MapTest.java,代码如下: import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class

  • Java5种遍历HashMap数据的写法

    本文介绍了最好的Java5种遍历HashMap数据的写法,分享给大家,也给自己留一个笔记,具体如下: 通过EntrySet的迭代器遍历 Iterator < Entry < Integer, String >> iterator = coursesMap.entrySet().iterator(); while (iterator.hasNext()) { Entry < Integer, String > entry = iterator.next(); System

  • Java中map遍历方式的选择问题详解

    1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率.那么实际情况如何呢? 为了解遍历性能的真实差距,包括在遍历key+value.遍历key.遍历value等不同场景下的差异,我试着进行了一些对比测试. 2. 对比测试 一开始只进行了简单的测试,但结果却表明k

随机推荐