JAVA遍历map的几种实现方法代码

代码如下:

public static void main(String args[]) {
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("a", "A");
  map.put("b", "B");
  map.put("c", "C");
  // keySet遍历
  Iterator<String> iterator = map.keySet().iterator();
  while (iterator.hasNext()) {
    String key = iterator.next();
    String value = (String) map.get(key);
    System.out.println(value);
  }
  for (String key : map.keySet()) {
    String value = (String) map.get(key);
    System.out.println(value);
  }
  // entrySet遍历
  Iterator<Entry<String, Object>> iterator1 = map.entrySet().iterator();
  while (iterator1.hasNext()) {
    String value = (String) iterator1.next().getValue();
    System.out.println(value);
  }

  for (Entry<String, Object> entry : map.entrySet()) {
    String value = (String) entry.getValue();
    System.out.println(value);
  }
  //
  for (Object str : map.values()) {
    System.out.println(str);
  }
}

关于效率问题:

如果你使用HashMap

同时遍历key和value时,keySet与entrySet方法的性能差异取决于key的具体情况,如复杂度(复杂对象)、离散度、冲突率等。换言之,取决于HashMap查找value的开销。entrySet一次性取出所有key和value的操作是有性能开销的,当这个损失小于HashMap查找value的开销时,entrySet的性能优势就会体现出来。例如上述对比测试中,当key是最简单的数值字符串时,keySet可能反而会更高效,耗时比entrySet少10%。总体来说还是推荐使用entrySet。因为当key很简单时,其性能或许会略低于keySet,但却是可控的;而随着key的复杂化,entrySet的优势将会明显体现出来。当然,我们可以根据实际情况进行选择
只遍历key时,keySet方法更为合适,因为entrySet将无用的value也给取出来了,浪费了性能和空间。在上述测试结果中,keySet比entrySet方法耗时少23%。
只遍历value时,使用vlaues方法是最佳选择,entrySet会略好于keySet方法。

如果你使用TreeMap

同时遍历key和value时,与HashMap不同,entrySet的性能远远高于keySet。这是由TreeMap的查询效率决定的,也就是说,TreeMap查找value的开销较大,明显高于entrySet一次性取出所有key和value的开销。因此,遍历TreeMap时强烈推荐使用entrySet方法。

(0)

相关推荐

  • Java中遍历Map的多种方法示例及优缺点总结

    前言 关于java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public class TestMap { public static Map<Integer, Integer> map = new HashMap<Integer, Integer>(); } keySet values 如果只需要map的key或者value,用map的keySe

  • java 遍历MAP的几种方法示例代码

    java中遍历MAP的几种方法 Map<String,String> map=new HashMap<String,String>(); map.put("username", "qq"); map.put("passWord", "123"); map.put("userID", "1"); map.put("email", "qq

  • 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集合map取key使用示例 java遍历map

    复制代码 代码如下: for (Iterator i = keys.iterator(); i.hasNext()        {           String key = (String) i.next();           String value = (String) map.get(key);           text+=key + " = " + value;       } 复制代码 代码如下: <span style="border-coll

  • java实现遍历Map的方法

    本文实例讲述了java实现遍历Map的方法.分享给大家供大家参考.具体如下: package com.yenange.test3; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { public static void main(String[] args) { Map map=new HashMap(); map.put(1, 1); map.put

  • 浅析java中遍历map的两种方式

    话不多说,直奔主题,跟着小编一起往下看: 1.先将map对象转成set,然后再转为迭代器 Iterator iterator = map.entrySet().iterator(); while(iterator.hasNext()){ Entry entry = iterator.next(); System.out.println(entry.getKey()); // 获取key System.out.println(entry.getValue()); // 获取value } 2.先将

  • Java遍历Map对象的四种方式

    关于java中遍历map具体哪四种方式,请看下文详解吧. 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.g

  • Java遍历Map键、值和获取Map大小的方法示例

    Map读取键值对,Java遍历Map的两种实现方法 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值 import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class HashMapTest2 { public static void main(String[] args) { HashMap map = new HashMap();

  • java遍历Map的几种方法分析

    本文实例分析了java遍历Map的几种方法.分享给大家供大家参考,具体如下: Java代码: Map<String,String> map=new HashMap<String,String>(); map.put("username", "qq"); map.put("passWord", "123"); map.put("userID", "1"); map.

  • JAVA遍历map的几种实现方法代码

    复制代码 代码如下: public static void main(String args[]) { Map<String, Object> map = new HashMap<String, Object>(); map.put("a", "A"); map.put("b", "B"); map.put("c", "C"); // keySet遍历 Itera

  • 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 (Ent

  • Java生成随机数的2种示例方法代码

    我们现在做个例子,比如生成20个0到10之间的随机数. 1.使用Random类的nextInt(n)方法,n代表0到n之间,包括0,不包括n 复制代码 代码如下: Random random = new Random();for(int i=0;i<20;i++){ System.out.println(random.nextInt(10));} 2.使用Math类中的random方法,它生成的随机数是0.0到1.0之间的double.要生成int就需要类型转换 复制代码 代码如下: for(i

  • JAVA遍历Map集合的几种方法汇总

    今天学习了Map集合的几种方法,尤其是遍历Map集合感觉尤为重要,所以发出来供大家学习和自己复习以用. 众所周知Map集合里存储元素是以键值对的方式存储元素,一个是Key一个是value. 开发过程中推荐使用第四种方法,本文章注释很清晰,仔细看完相信会对你有所帮助的! 方法一: 首先去通过获取迭代器,通过迭代器去遍历集合,获取key然后通过key去获取value,然后就完成了Map集合元素的遍历 public static void main(String[] args) { //使用泛型去创建

  • Java读取Map的两种方法与对比

    前言 在java中遍历Map有不少的方法.这篇文章我们就来看一下Java读取Map的两种方法以及这两种方法的对比. 一. 遍历Map方法A Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = en

  • Java遍历Map四种方式讲解

    Java中遍历Map的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历. 方法一:在for循环中使用entries实现Map的遍历: /** * 最常见也是大多数情况下用的最多的,一般在键值对都需要使用 */ Map <String,String>map = new HashMap<String,String>(); map.put("

随机推荐