我的Java路上那些事儿
快乐成长
posts - 110, comments - 101, trackbacks - 0, articles - 7
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
java map的操作 与 遍历效率
Posted on 2011-05-12 21:13
云云
阅读(10254)
评论(3)
编辑
收藏
1
.声明一个map: Map map
=
new
HashMap();
2
.向map中放值,注意:map是key
-
value的形式存放的.如:
map.put(”sa”,”dd”);
3
.从map中取值:String str
=
map.get(”sa”).toString();结果是:str
=
”dd”;
4
.遍历一个map,从中取得key 和value
JDK1.
5
Map m
=
new
HashMap();
for
(Object o : map.keySet())
{
map.get(o);
}
JDK1.
4
Map map
=
new
HashMap() ;
Iterator it
=
map.entrySet().iterator() ;
while
(it.hasNext())
{
Map.Entry entry
=
(Map.Entry) it.next() ;
Object key
=
entry.getKey() ;
Object value
=
entry.getValue() ;
}
遍历效率对比:
第一种:
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
=
entry.getValue();
}
效率高,以后一定要使用此种方式
!
第二种:
Map map
=
new
HashMap();
Iterator iter
=
map.keySet().iterator();
while
(iter.hasNext())
{
Object key
=
iter.next();
Object val
=
map.get(key);
}
效率低,以后尽量少使用
!
HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:
public
class
HashMapTest
{
public
static
void
main(String[] args)
{
HashMap hashmap
=
new
HashMap();
for
(
int
i
=
0
; i
<
1000
; i )
{
hashmap.put(
""
i,
"
thanks
"
);
}
long
bs
=
Calendar.getInstance().getTimeInMillis();
Iterator iterator
=
hashmap.keySet().iterator();
while
(iterator.hasNext())
{
System.out.print(hashmap.get(iterator.next()));
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis()
-
bs);
listHashMap();
}
public
static
void
listHashMap()
{
java.util.HashMap hashmap
=
new
java.util.HashMap();
for
(
int
i
=
0
; i
<
1000
; i )
{
hashmap.put(
""
i,
"
thanks
"
);
}
long
bs
=
Calendar.getInstance().getTimeInMillis();
java.util.Iterator it
=
hashmap.entrySet().iterator();
while
(it.hasNext())
{
java.util.Map.Entry entry
=
(java.util.Map.Entry) it.next();
//
entry.getKey() 返回与此项对应的键
//
entry.getValue() 返回与此项对应的值
System.out.print(entry.getValue());
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis()
-
bs);
}
}
对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。
注:Hashtable的遍历方法和以上的差不多
!
评论
#
·1
回复
更多评论
2015-09-09 15:55 by
·1
ABC的风格
#
re: java map的操作 与 遍历效率
回复
更多评论
2015-09-09 15:56 by
·11
213
#
re: java map的操作 与 遍历效率
回复
更多评论
2015-09-09 15:56 by
·11
@·1
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
Powered by:
BlogJava
Copyright © 云云
日历
<
2011年5月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(9)
给我留言
查看公开留言
查看私人留言
随笔档案
2015年7月 (1)
2014年9月 (3)
2014年1月 (3)
2013年12月 (1)
2013年11月 (4)
2013年10月 (2)
2013年7月 (2)
2013年6月 (3)
2013年4月 (2)
2013年1月 (2)
2012年12月 (4)
2012年11月 (3)
2012年10月 (3)
2012年9月 (2)
2012年8月 (1)
2012年7月 (9)
2012年6月 (2)
2012年5月 (6)
2012年4月 (7)
2012年3月 (2)
2012年2月 (1)
2012年1月 (1)
2011年12月 (2)
2011年11月 (16)
2011年10月 (7)
2011年8月 (1)
2011年6月 (2)
2011年5月 (5)
2011年4月 (9)
2011年3月 (10)
搜索
最新评论
1. re: CAP原理与最终一致性 强一致性 透析
学习。
--NewSea
2. re: 一致性哈希算法与Java实现
有一个问题,如果使用虚拟节点,某台机器每次宕机再恢复后都需要迁移数据。这样是否反而更麻烦了。
--三单联咖啡色
3. re: java static块和static 方法 的使用区别
sss
--zhangsan
4. re: struts2 jsp页面使用s:if 标签
你是基佬 哦耶耶
--基佬
5. re: android开发过程中 R文件消失 clean 和 build project都无效 已解决
评论内容较长,点击标题查看
--llll
阅读排行榜
1. linux 新建用户、用户组 以及为新用户分配权限(127864)
2. Oracle内连接、外连接、右外连接、全外连接小总结(93192)
3. zookeeper 集群安装(单点与分布式成功安装)摘录(79139)
4. android开发过程中 R文件消失 clean 和 build project都无效 已解决(76953)
5. 一致性哈希算法与Java实现 (48830)
评论排行榜
1. Oracle内连接、外连接、右外连接、全外连接小总结(12)
2. zookeeper 集群安装(单点与分布式成功安装)摘录(11)
3. android开发过程中 R文件消失 clean 和 build project都无效 已解决(6)
4. struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input(6)
5. jquery 自动过滤表单输入框前后空格(5)