另一种遍历Map的方式: Map.Entry 和 Map.entrySet()
源网址: http://blog.csdn.net/mageshuai/article/details/3523116
今天看Think in java 的GUI这一章的时候,里面的TextArea这个例子在遍历Map时用到了Map.Entry 和 Map.entrySet() ,记得只见过Map.KeySet()和values()这两个方法,于是到API中一看,Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是一个接口,他的用途是表示一个映射项(里面有Key和Value),而Set<Map.Entry<K,V>>表示一个映射项的Set。
Map.Entry里有相应的getKey和getValue方法,让我们能够从一个项中取出Key和Value。这样就能理解了例子中的写法了。
for(Map.Entry me : m.entrySet()) {
t.append(me.getKey() + ": " + me.getValue() + "/n");
}
这里的t是一个TextArea,m是一个HashMap。
这种遍历Map的方法可以让我们在从Map中取得关键字之后,我们不用每次重复返回到Map中取得相对的值。
如下面是以前的写法:每次都要再从m中读出s所对应的值。
Set keys = m.keySet( );
if(keys != null)
for(String s : keys)
t.append(s + ": " + m.get(s) + "/n");
源网址: http://blog.csdn.net/nuoshueihe/article/details/7874069
1.package edu.smc.test;
2.
3.import java.util.HashMap;
4.import java.util.Iterator;
5.import java.util.Map;
6.import java.util.Map.Entry;
7.
8.public class TestEntrySet {
9. public static void main(String[] args) {
10. Map<String,String> map=new HashMap<String,String>();
11. map.put("1", "张三");
12. map.put("2", "李四");
13. map.put("3", "王五");
14.
15. System.out.println("方法一:");
16. Iterator iterator=map.entrySet().iterator();
17. while(iterator.hasNext()){
18. Map.Entry<String, String> entry= (Entry<String, String>) iterator.next();
19. System.out.println("key:"+entry.getKey()+" value"+entry.getValue());
20. }
21.
22. System.out.println("方法二:");
23. for (Map.Entry<String, String> m : map.entrySet()) {
24. System.out.println("key:"+m.getKey()+" value"+m.getValue());
25. }
26. }
27.}
package edu.smc.test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class TestEntrySet {
public static void main(String[] args) {
Map<String,String> map=new HashMap<String,String>();
map.put("1", "张三");
map.put("2", "李四");
map.put("3", "王五");
System.out.println("方法一:");
Iterator iterator=map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String, String> entry= (Entry<String, String>) iterator.next();
System.out.println("key:"+entry.getKey()+" value"+entry.getValue());
}
System.out.println("方法二:");
for (Map.Entry<String, String> m : map.entrySet()) {
System.out.println("key:"+m.getKey()+" value"+m.getValue());
}
}
}
结果:
[html] view plaincopyprint?
1.方法一:
2.key:3 value王五
3.key:2 value李四
4.key:1 value张三
5.方法二:
6.key:3 value王五
7.key:2 value李四
8.key:1 value张三
另一种遍历Map的方式: Map.Entry 和 Map.entrySet()的更多相关文章
- HashMap两种遍历数据的方式
HashMap的遍历有两种方式,一种是entrySet的方式,另外一种是keySet的方式. 第一种利用entrySet的方式: Map map = new HashMap(); Iterator i ...
- oc/object-c/ios哪种遍历NSArray/NSDictionary方式快?测试报告
做app的时候,总免不了要多次遍历数组或者字典.究竟哪种遍历方式比较快呢?我做了如下测试:首先定义测试用宏: ? 1 2 3 4 5 6 7 8 9 #define MULogTimeinterval ...
- Java中五种遍历HashMap的方式
import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Java8Templat ...
- Map三种遍历方式
Map三种遍历方式 package decorator; import java.util.Collection; import java.util.HashMap; import java.util ...
- map的四种遍历方式
map是Java中非常常用的一种数据结构,但map不同于set和list都继承自Collection接口. 所以map没有实现Collection的Iterator 方法,自身没有迭代器来遍历元素. ...
- Map集合的两种遍历方式
Map集合:即 接口Map<K,V> map集合的两种取出方式: 1.Set<k> keyset: 将map中所有的键存入到set集合(即将所有的key值存入到set中) ...
- Map俩种遍历方式
Map本身没有迭代器因而在遍历其中元素时需要采取新的措施,在JDK中提供了俩种方法 keySet Set<K> keySet() 返回此映射中包含的键的 Set 视图.该 set 受映射支 ...
- Map 的四种遍历方式
Map 的四种遍历方式 import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class ...
- List和Map常用的几种遍历方式
遍历一个List有以下几种方法: /*//1.普通for循环的方式: List<String> list=new ArrayList<String>(); list.add(& ...
- Map集合的几种遍历方式
Map<String ,String> map=new HashMap<String,String>(); map.put("1","value1 ...
随机推荐
- qml 封装技巧-利用数据来进行适配
Text属于用的频率比较高而且需要定义的地方又比较多的地方,看一下如下的把Text封装成Label进行使用. 使用的例子: Label { id: titleLabel anchors { left: ...
- cppcheck 下载与安装(Liunx)
下载网址:https://sourceforge.net/projects/cppcheck/files/cppcheck/ 选择安装包:cppcheck-1.75.tar.gz 解压安装包:tar ...
- Hibernate 检索方式
概述 •Hibernate 提供了以下几种检索对象的方式 –导航对象图检索方式: 根据已经加载的对象导航到其他对象 –OID 检索方式: 按照对象的 OID 来检索对象 –HQL 检索方式: 使用 ...
- WinRT知识积累1之读xml数据
前述:这个知识是在Windows8.1或WP8.1中运用Linq to xml获取一个xml文件里的数据.(网上也很多类似的知识,可以借鉴参考) 平台:windows8.1 metro 或者WP8.1 ...
- OC基础--简介
OC简介: 1986年,BradCox(布莱德·考克斯)在第一个纯面向对象语言Smalltalk基础上写成了Objective-C语言. 1985年,被赶出苹果公司的Steve Jobs成立了NeXT ...
- python mysql 更新和插入数据无效
注意,在删除和增加后必须执行conn.commit()才有效,否则操作无效.
- powershell中的两只爬虫
--------------------序-------------------- (PowerShell中的)两只爬虫,两只爬虫,跑地快,爬网页不赖~~~ 一只基于com版的ie,一只基于.net中 ...
- Sql 注意点
1. Set.Select赋值 使用SELECT语句来替代SET命令的主要优点是:可以在一个操作内同时给多个变量赋值.执行下面的SELECT语句,通过SELECT语句赋值的变量就可以用于任何操作了. ...
- 为什么在保护模式下IA-32处理器最高可访问4GB的内存
在保护模式下,IA-32处理器可访问最高达4GB的内存,这是32位无符号二进制整数地址能够寻址的上限. 今天看汇编的时候发现书里带过一句,不太明白为什么内存上限是4GB,就搜了一下,总结了一下答案. ...
- android技巧(一):如何方便知晓当前Activity?如何管理应用中的Activity?如何最佳的启动一个Activity?
1.如何方便知晓当前Activity? 可以不看代码根据当前界面就知道界面所在Activity的写法: 建立BaseActivity,继承自Activity,在BaseActivity的OnCreat ...