- 浏览: 919907 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (498)
- J2EE (52)
- 数据库 (17)
- java基础 (43)
- web技术 (19)
- 程序设计 (6)
- 操作系统 (18)
- IT资讯 (7)
- 我的IT生活 (12)
- 学习笔记 (9)
- Jquery (25)
- JavaScript (18)
- spring (40)
- Hibernate (12)
- Struts (10)
- YUI (2)
- Extjs (22)
- .net (0)
- Eclipse (10)
- 社会主义 (2)
- 服务器 (9)
- CSS (8)
- 网络安全 (16)
- 版本控制 (9)
- PHP (2)
- Oracle (42)
- SQL server (1)
- Mysql (11)
- 项目管理 (3)
- 开发工具使用 (10)
- SQL语句 (7)
- Perl (0)
- Shell (6)
- 漏洞 (4)
- ibatis (5)
- hacker (2)
- SQL注入 (6)
- Hacker工具 (2)
- 入侵和渗透 (7)
- 插件/组件 (2)
- 最爱开源 (5)
- 常用软件 (2)
- DOS (1)
- HTML (2)
- Android (9)
- CMS (1)
- portal (8)
- Linux (7)
- OSGI (1)
- Mina (5)
- maven (2)
- hadoop (7)
- twitter storm (2)
- sap hana (0)
- OAuth (0)
- RESTful (1)
- Nginx (4)
- flex (1)
- Dubbo (1)
- redis (1)
- springMVC (1)
- node.js (1)
- solr (2)
- Flume (1)
- MongoDB (2)
- ElasticSearch (1)
最新评论
-
M_drm:
请问要怎么设置浏览器才不报没权限呢?
用JS在页面调用本地可执行文件的方法(ACTIVEX) -
Alexniver:
官方文档。When importing data into I ...
mysql导入数据过慢 解决方法 -
camelwoo:
我记得 Criteria 可以做连接查询与子查询,也可以做分页 ...
Hibernate总结篇二 -
zhenglongfei:
楼主如果SubKeyName 这个节点不存在,怎么办??怎么用 ...
Java操作注册表 -
yxx676229549:
用log4j 2 了
logback
http://smallnetvisitor.iteye.com/blog/1729381
首先我们准备数据,准备一个map
然后我们采用传说中的key遍历:
步骤:先弄成key set,然后遍历key set 通过key从map中获取value
然后我们在采用entrySet的方式遍历下:
步骤:先弄成entrySet 然后遍历他,获取key和value
孰优孰劣?
看JDK源码,对比两种访问方式:
首先看KeySet访问方式:
也就是调用entrySet()从entryset中获取key,也就是说是在entry set的基础上来做的,貌似多次一举
结论:
通过上述代码我们就知道,采用entrySet方式要优于keySet,因为keySet首先要访问entrySet来组建一个keySet,重复工作不言而喻
首先我们准备数据,准备一个map
Map<String, String> map = new HashMap<String, String>(); for (int i = 0; i < 10; i++) { map.put(i + "", "value" + i); }
然后我们采用传说中的key遍历:
步骤:先弄成key set,然后遍历key set 通过key从map中获取value
Iterator<String> iterator = map.keySet().iterator(); while (iterator.hasNext()) { String key = iterator.next(); String val = map.get(key); System.out.println(key + "->" + val); } System.out.println("*********************");
然后我们在采用entrySet的方式遍历下:
步骤:先弄成entrySet 然后遍历他,获取key和value
Set<Entry<String, String>> set = map.entrySet(); Iterator<Entry<String, String>> s = set.iterator(); while (s.hasNext()) { Entry<String, String> en = s.next(); String key = en.getKey(); String val = en.getValue(); System.out.println(key + "->" + val); }
孰优孰劣?
看JDK源码,对比两种访问方式:
首先看KeySet访问方式:
public Set<K> keySet() { if (keySet == null) { keySet = new AbstractSet<K>() { public Iterator<K> iterator() { return new Iterator<K>() { private Iterator<Entry<K,V>> i = entrySet().iterator(); public boolean hasNext() { return i.hasNext(); } public K next() { return i.next().getKey(); } public void remove() { i.remove(); } }; } public int size() { return AbstractMap.this.size(); } public boolean contains(Object k) { return AbstractMap.this.containsKey(k); } }; } return keySet; }
也就是调用entrySet()从entryset中获取key,也就是说是在entry set的基础上来做的,貌似多次一举
结论:
通过上述代码我们就知道,采用entrySet方式要优于keySet,因为keySet首先要访问entrySet来组建一个keySet,重复工作不言而喻
发表评论
-
List对象排序通用方法
2014-07-29 09:21 1035在数据库中查出来的列 ... -
EJBCA环境搭建
2014-04-03 17:31 1094EJBCA开发者 http://wiki.ejbca.org/ ... -
Java & Eclipse 相关内容杂记及技巧
2013-11-26 22:42 10591、Eclipse 的启动画面 A、加启动参数。如: ... -
一套貌似很牛B的Nutch相关框架视频教程
2013-10-24 09:16 1108国内首套免费的《Nutch相关框架视频教程》(1-20) ht ... -
HTTP文件断点上传
2013-05-14 00:10 1035HTTP文件断点上传 http://www.cnblogs.c ... -
使用 Eclipse Memory Analyzer 检测内存泄漏问题
2013-05-05 19:01 871转:http://blog.csdn.net/moneyice ... -
memcached实现多个tomcat 共享一个session(转)
2013-04-23 09:49 901http://dqm926.iteye.com/blog/18 ... -
Java字符编码根本原理
2013-04-03 16:33 875Java开发中,常常会遇到乱码的问题,一旦遇到这种问题,常常就 ... -
StringUtils常用方法说明
2013-01-28 09:21 1008http://www.iteye.com/topic/1128 ... -
logback
2013-01-23 09:40 1288http://yuri-liuyu.iteye.com/blo ... -
中文排序要注意的问题
2012-12-08 10:10 1155遇到了中文排序问题,比如想用拼音排序, String[] ... -
位运算
2012-11-21 17:50 959程序中的所有数在计算 ... -
SVN如何强制在提交时要求添加注释说明(windows平台)
2012-11-06 18:00 3626在项目库的hooks目录下,添加一个pre-commit.ba ... -
Java虚拟机读写其他进程的数据
2012-08-22 13:07 1145Java虚拟机读写其他进程的数据 http://axiang ... -
java计算校验和:对“消息头+会话头+事务头+操作信息”按32位异或,对异或结果取反后的值为校验和。
2012-08-14 17:41 3546java计算校验和:对“消 ... -
java中对Byte字符数组定长截取的方法
2012-08-14 16:33 2113今天在在处理从网络上接收到的字符串,因为是从后台C语言过来的一 ... -
CAS单点登录配置笔记
2012-08-14 16:31 1098转:http://blog.csdn.net/lifvc/ar ... -
hadoop安装与配置
2012-08-10 11:46 1352一、安装准备 1、下载hadoop 0.21.0,地址:ht ... -
集中各种好网站
2012-08-09 16:41 9731.开源中国---在线工具: http://www.oscto ... -
人脸检测算法库 jViolajones 使用示例代码
2012-08-09 16:32 1693jViolajones是人脸检测算法Viola-Jones的一 ...
相关推荐
要解决HashMap遍历删除元素的问题,可以使用Iterator来遍历HashMap,并使用Iterator的remove方法来删除元素。这样可以避免ConcurrentModificationException异常。 小结 在遍历和删除HashMap和List的元素时,需要...
这段代码将抛出 `java.util.ConcurrentModificationException` 异常,因为在遍历 HashMap 的元素过程中删除了当前所在元素,下一个待访问的元素的指针也由此丢失了。 2. 正确的删除方法 正确的删除方法是使用迭代...
HashMap遍历和使用方法详解 HashMap是Java中一种常用的数据结构,用于存储键值对的集合。它实现了Map接口,是基于哈希表结构的,可以快速地存储和检索数据。本文将详细介绍HashMap的遍历和使用方法,并比较HashMap...
这种方式比较适合只需要使用键的场景。 **优点**:如果只需要键,这种方法可以避免不必要的值拷贝,简单直接。 **缺点**:需要额外的get()操作来获取值,增加了遍历的复杂性。 ```java for (String key : hashMap...
### HashMap遍历详解 在Java编程中,`HashMap`是一种常用的数据结构,它实现了`Map`接口,提供了基于哈希表的存储方式,允许我们快速地查找、插入和删除键值对。对于`HashMap`的遍历,是进行数据处理和分析时不可或...
这种遍历方式可以直接获取HashMap中的键值对,并且可以快速地遍历整个HashMap。 二、显示调用map.entrySet()的集合迭代器遍历方式 显示调用map.entrySet()的集合迭代器是另一种遍历方式,其实现代码如下: ```...
### Java中遍历Map的四种方式及性能比较 在Java编程中,`Map`是一种非常重要的数据结构,用于存储键值对。对于`Map`的遍历,不同的遍历方式有着不同的性能表现以及适用场景。本文将详细介绍四种常见的遍历`Map`的...
在Java编程中,哈希遍历(Hash Traversal)通常是指对哈希表或映射数据结构(如HashMap)中的键值对进行访问的过程。哈希表是一种高效的数据存储方式,它通过计算对象的哈希码来快速定位数据,使得查找、插入和删除...
5. **HashMap遍历注意事项**: - 遍历HashMap时修改HashMap(添加、删除元素)可能会导致`ConcurrentModificationException`,因为迭代器无法检测到这种并发修改。 - 使用`keySet()`遍历并删除元素是安全的,但...
然而,在实际开发中,我们经常需要遍历HashMap中的数据以实现某些功能。下面将介绍五种遍历HashMap数据的写法,以满足不同场景下的需求。 通过EntrySet的迭代器遍历 在Java中,我们可以使用EntrySet的迭代器来遍历...
HashMap遍历的常用方法主要有三种:迭代器(Iterator)遍历、键集(KeySet)遍历以及 Entry 集(entrySet)遍历。下面将逐一介绍这些方法。 1. 迭代器遍历: HashMap提供了迭代器接口(Iterator),可以通过调用`...
2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、遍历Map.values():它是Map中value的集合,我们可以直接通过这个集合遍历 Map中的值,却不能读取key。
- **HashMap**:在 Java 8 中引入了并行化能力,通过 `ConcurrentHashMap` 的实现方式,提高了多线程环境下的性能。 - **HashTable**:由于其同步策略,不适用于高并发场景。 9. **迭代器**: - **HashMap**:...
在Struts2中,Map遍历是一个常见的功能,它允许开发者动态地展示或操作存储在Map中的数据。这个功能在处理表单提交、传递参数或者在视图层展示数据时尤为有用。 首先,让我们理解Map遍历的基本概念。Map是一种键值...
2. 使用 foreach 遍历:使用 foreach 语句遍历 HashMap 中的元素。 HashMap 的常用方法 1. clear():清空 HashMap 中的所有元素。 2. isEmpty():检查 HashMap 是否为空。 3. size():取得 HashMap 中的元素数量。...
标题中提到的"FLEX HashMap遍历并取到需要的值",是指在编程中如何使用Java语言的HashMap集合类型进行遍历,并且从中取得符合特定条件的数据值。HashMap是一种基于哈希表的Map接口实现,它允许我们存储键值对,其中...
自己写的例子,关于HashSet遍历和HashMap遍历的. 感谢大家参考
可以通过2种方法遍历HashMap <br>Map map = new HashMap(); <br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { <br> Map.Entry entry = (Map.Entry) iter.next(); <br> Object ...
本文将详细介绍四种不同的遍历`Map`的方式,并通过具体的代码示例来解释每种方法的特点及适用场景。 #### 一、通过`Map.keySet()`遍历键和值 这种方法首先获取`Map`的所有键集合(`keySet`),然后通过迭代器或者...
2. **方式二:使用Values方法** Values方法返回HashMap中所有值的Collection视图。与KeySet类似,由于Collection接口实现了Iterable,我们同样可以使用for-each循环来遍历并打印每个值。这种方式只能获取值,不能...