- 浏览: 21567 次
- 性别:
- 来自: 大连
文章分类
最新评论
转自:http://blog.csdn.net/tjcyjd/article/details/11111401
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 [java] view plaincopy Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } 注意:for-each循环在java 5中被引入所以该方法只能应用于java 5或更高的版本中。如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查空引用。 方法二 在for-each循环中遍历keys或values。 如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。 [java] view plaincopy Map<Integer, Integer> map = new HashMap<Integer, Integer>(); //遍历map中的键 for (Integer key : map.keySet()) { System.out.println("Key = " + key); } //遍历map中的值 for (Integer value : map.values()) { System.out.println("Value = " + value); } 该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。 方法三使用Iterator遍历 使用泛型: [java] view plaincopy Map<Integer, Integer> map = new HashMap<Integer, Integer>(); Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator(); while (entries.hasNext()) { Map.Entry<Integer, Integer> entry = entries.next(); System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } 不使用泛型: [java] view plaincopy Map map = new HashMap(); Iterator entries = map.entrySet().iterator(); while (entries.hasNext()) { Map.Entry entry = (Map.Entry) entries.next(); Integer key = (Integer)entry.getKey(); Integer value = (Integer)entry.getValue(); System.out.println("Key = " + key + ", Value = " + value); } 你也可以在keySet和values上应用同样的方法。 该种方式看起来冗余却有其优点所在。首先,在老版本java中这是惟一遍历map的方式。另一个好处是,你可以在遍历时调用iterator.remove()来删除entries,另两个方法则不能。根据javadoc的说明,如果在for-each遍历中尝试使用此方法,结果是不可预测的。 从性能方面看,该方法类同于for-each遍历(即方法二)的性能。 方法四、通过键找值遍历(效率低) [java] view plaincopy Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Integer key : map.keySet()) { Integer value = map.get(key); System.out.println("Key = " + key + ", Value = " + value); } 作为方法一的替代,这个代码看上去更加干净;但实际上它相当慢且无效率。因为从键取值是耗时的操作(与方法一相比,在不同的Map实现中该方法慢了20%~200%)。如果你安装了FindBugs,它会做出检查并警告你关于哪些是低效率的遍历。所以尽量避免使用。 总结 如果仅需要键(keys)或值(values)使用方法二。如果你使用的语言版本低于java 5,或是打算在遍历时删除entries,必须使用方法三。否则使用方法一(键值都要)。
发表评论
-
java中List对象排序的通用方法
2015-03-26 11:10 351http://blog.csdn.net/5iasp/arti ... -
得到List中重复的数据
2014-07-01 17:00 351// set中存放的是不可重复的元素 HashSet& ... -
jdbc
2014-06-26 07:38 356webservice :http://www.blogjava ... -
Array、List互相转换
2013-10-18 10:19 568数组转换为list: package com.basic.ob ... -
What version of Java do I have installed?
2013-10-16 16:42 514查看java版本:java -version -
java排序
2013-10-16 15:17 374排序方法: package com.sst; publi ... -
数字转换为汉语中人民币的大写(转载)
2013-09-27 14:06 877java转换一: package dataDe ... -
单例模式
2013-09-26 11:19 306摘自:博客园,小黎*chichy Go for it ,向攻城 ... -
java随机数
2013-09-26 10:58 409有关随机数,在网上找了一些资料,感觉总结的不错,就记载下来,以 ... -
java日期工具类
2013-09-26 09:52 396今天遇到了日期转换知识,在网上搜集了一个测试例子,并且在自己电 ... -
java日期
2013-09-26 09:51 0package dataDemo; impor ... -
java判断字符串是否为汉字
2013-08-15 17:59 925//正则表达式实现 String ... -
java 读取文件
2013-07-12 12:47 3401、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文 ...
相关推荐
### 二、使用keySet遍历Map `Map`提供了一个`keySet()`方法,该方法返回`Map`中所有键的集合视图。通过这个方法,我们可以获取到一个包含所有键的`Set`集合,然后使用迭代器(`Iterator`)或增强型for循环(foreach...
在 Java 中,遍历 Map 对象是常见的操作,因为我们需要访问和处理存储的键值对。以下是四种遍历 Map 的方法: 1. **使用 for-each 循环遍历 entries** 这是最简单且推荐的遍历方式,适用于需要同时访问键和值的...
### Java遍历Map对象的所有数据 在Java编程中,`Map`接口是Java集合框架中的一个关键组成部分,它用于存储键值对。本篇文章将详细解释如何遍历`Map`对象的所有数据,并介绍几种常见的遍历方法。我们将重点讨论通过`...
本篇文章将详细分析Java中遍历Map的四种常见方法,帮助开发者更好地理解和运用这些技巧。 1. **for-each循环遍历** Java 5引入了增强的for循环(也称为foreach循环),使得遍历Map变得非常简洁。通过`Map.entrySet...
本文将详细探讨在Java中遍历`Map`的两种常用方法:通过`keySet()`方法和通过`entrySet()`方法。 ### 一、通过`keySet()`方法遍历`Map` #### 方法概述 `keySet()`方法返回一个包含`Map`中所有键的`Set`视图。通过...
主要提供java中的map的遍历实例及效率比较
本文将详细讲解两种主要的遍历Map元素的方法,并分析它们的效率差异。 ### 方法一:通过`entrySet()`遍历 这是推荐的遍历Map元素的方式,因为它具有较高的效率。通过调用`Map.entrySet()`方法,我们可以获取到Map...
1、遍历Map.entrySet():它的每一个元素都是Map.Entry对象,这个对象中, 放着的就是Map中的某一对key-value; 2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、...
两种方法都可以用于遍历Map集合,但是它们之间有一些区别。在实际开发中,我们可以根据实际情况选择合适的遍历方法。 优点和缺点 使用values()方法和Iterator迭代器的优点: * 该方法能够快速地遍历Map集合中的...
以下是Java中遍历Map的几种常见方法,包括使用增强的for循环、迭代器以及通过keySet()和entrySet()方法: 1. **增强的for循环(foreach)** 增强的for循环是Java 5引入的新特性,它可以简洁地遍历集合。对于Map,...
Java中的Map接口是用于存储键值对的数据结构,它的遍历方法有多种,这里我们将详细介绍四种常见的遍历方式。每种方法都有其适用场景和优缺点,选择合适的遍历方式可以提高代码的效率和可读性。 1. 方式一:使用`...
这篇博文主要探讨了如何遍历Java中的`Map`对象,下面将详细介绍几种常见的遍历`Map`的方法。 1. **迭代器法**: Java提供了`Map`接口的`entrySet()`方法,返回一个包含`Map`中所有键值对的`Set`视图。通过这个`Set...
总结,Java中遍历`Map`主要有四种方式,其中通过`Map.entrySet()`进行遍历通常被认为效率较高,尤其在`Map`容量较大的情况下。而在Java 8之后,我们可以利用Lambda表达式简化遍历操作。获取`Map`的长度直接调用`size...
在Java编程中,集合框架是处理数据的重要...总之,Java中遍历Map有多种方法,具体选择取决于你的需求。使用`entrySet()`、`keySet()`或`values()`,配合迭代器或增强的for循环,都可以方便地访问和操作Map中的键值对。
### Java遍历JSON树知识点详解 #### 一、前言 在处理Web应用程序中的数据时,JSON(JavaScript Object Notation)是一种非常常见的数据格式。它轻量级且易于读写,因此广泛应用于前后端的数据交互中。对于Java...
总结起来,Java中Map集合的遍历方法各有优缺点,选择哪种方式取决于具体需求,如是否需要键和值,是否关心遍历顺序,以及是否利用Java 8的Stream API进行更复杂的操作。在实际开发中,理解和熟练掌握这些遍历方式将...
遍历Map是开发过程中常见的操作,通常有两种主要的方法:通过Entry Set和通过Key Set。下面将详细介绍这两种遍历方式。 1. 通过Entry Set遍历Map Map的`entrySet()`方法返回一个包含Map中所有键值对的Set视图。这...
Map遍历的实现原理是通过使用Map.entrySet()方法获取Map中的所有键值对,然后使用迭代器对象对其进行遍历。 3. List遍历 List遍历的实现原理是通过使用迭代器对象对List中的每个元素进行访问和处理,或者使用for...
以下是对标题和描述中提及的四种遍历Map方法的详细说明: 1. **通过Map.keySet遍历key和value** 这种方法是最直观的,直接获取Map的keySet并进行迭代。代码简洁,但存在效率问题。在遍历过程中,每次获取value都...
在JSP中,如果你有一个Map对象存储在请求或页面作用域中,例如: ```java Map, String> myMap = new HashMap(); myMap.put("key1", "value1"); myMap.put("key2", "value2"); request.setAttribute("myMap", myMap)...