我的Java路上那些事兒
快樂成長
posts - 110, comments - 101, trackbacks - 0, articles - 7
BlogJava
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
java map的操作 與 遍歷效率
Posted on 2011-05-12 21:13
云云
閱讀(10256)
評(píng)論(3)
編輯
收藏
1
.聲明一個(gè)map: Map map
=
new
HashMap();
2
.向map中放值,注意:map是key
-
value的形式存放的.如:
map.put(”sa”,”dd”);
3
.從map中取值:String str
=
map.get(”sa”).toString();結(jié)果是:str
=
”dd”;
4
.遍歷一個(gè)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() ;
}
遍歷效率對(duì)比:
第一種:
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來進(jìn)行遍歷,但兩者的遍歷速度是有差別的,下面請(qǐng)看實(shí)例:
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() 返回與此項(xiàng)對(duì)應(yīng)的鍵
//
entry.getValue() 返回與此項(xiàng)對(duì)應(yīng)的值
System.out.print(entry.getValue());
}
System.out.println();
System.out.println(Calendar.getInstance().getTimeInMillis()
-
bs);
}
}
對(duì)于keySet其實(shí)是遍歷了2次,一次是轉(zhuǎn)為iterator,一次就從hashmap中取出key所對(duì)于的value。而entryset只是遍歷了第一次,他把key和value都放到了entry中,所以就快了。
注:Hashtable的遍歷方法和以上的差不多
!
評(píng)論
#
·1
回復(fù)
更多評(píng)論
2015-09-09 15:55 by
·1
ABC的風(fēng)格
#
re: java map的操作 與 遍歷效率
回復(fù)
更多評(píng)論
2015-09-09 15:56 by
·11
213
#
re: java map的操作 與 遍歷效率
回復(fù)
更多評(píng)論
2015-09-09 15:56 by
·11
@·1
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
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
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(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)
搜索
最新評(píng)論
1.?re: CAP原理與最終一致性 強(qiáng)一致性 透析
學(xué)習(xí)。
--NewSea
2.?re: 一致性哈希算法與Java實(shí)現(xiàn)
有一個(gè)問題,如果使用虛擬節(jié)點(diǎn),某臺(tái)機(jī)器每次宕機(jī)再恢復(fù)后都需要遷移數(shù)據(jù)。這樣是否反而更麻煩了。
--三單聯(lián)咖啡色
3.?re: java static塊和static 方法 的使用區(qū)別
sss
--zhangsan
4.?re: struts2 jsp頁面使用s:if 標(biāo)簽
你是基佬 哦耶耶
--基佬
5.?re: android開發(fā)過程中 R文件消失 clean 和 build project都無效 已解決
評(píng)論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--llll
閱讀排行榜
1.?linux 新建用戶、用戶組 以及為新用戶分配權(quán)限(127884)
2.?Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)(93204)
3.?zookeeper 集群安裝(單點(diǎn)與分布式成功安裝)摘錄(79152)
4.?android開發(fā)過程中 R文件消失 clean 和 build project都無效 已解決(76971)
5.?一致性哈希算法與Java實(shí)現(xiàn) (48852)
評(píng)論排行榜
1.?Oracle內(nèi)連接、外連接、右外連接、全外連接小總結(jié)(12)
2.?zookeeper 集群安裝(單點(diǎn)與分布式成功安裝)摘錄(11)
3.?android開發(fā)過程中 R文件消失 clean 和 build project都無效 已解決(6)
4.?struts2 jsp表單提交后保留表單中輸入框中的值 下拉框select與input(6)
5.?jquery 自動(dòng)過濾表單輸入框前后空格(5)
主站蜘蛛池模板:
阿拉善右旗
|
开远市
|
玉山县
|
沁阳市
|
多伦县
|
时尚
|
句容市
|
汶川县
|
安多县
|
禹城市
|
孝昌县
|
长宁县
|
贵州省
|
麻江县
|
哈巴河县
|
青铜峡市
|
林芝县
|
札达县
|
会理县
|
博白县
|
衡阳市
|
盱眙县
|
明水县
|
内乡县
|
宁都县
|
肇源县
|
宁城县
|
旅游
|
桂林市
|
怀仁县
|
桐梓县
|
锡林郭勒盟
|
阿克
|
文化
|
岳阳县
|
青河县
|
库伦旗
|
莒南县
|
江口县
|
永靖县
|
太仆寺旗
|