我的Java路上那些事兒
快樂成長
posts - 110, comments - 101, trackbacks - 0, articles - 7
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
java map的操作 與 遍歷效率
Posted on 2011-05-12 21:13
云云
閱讀(10261)
評論(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 新建用戶、用戶組 以及為新用戶分配權限(127905)
2.?Oracle內連接、外連接、右外連接、全外連接小總結(93213)
3.?zookeeper 集群安裝(單點與分布式成功安裝)摘錄(79165)
4.?android開發過程中 R文件消失 clean 和 build project都無效 已解決(76982)
5.?一致性哈希算法與Java實現 (48862)
評論排行榜
1.?Oracle內連接、外連接、右外連接、全外連接小總結(12)
2.?zookeeper 集群安裝(單點與分布式成功安裝)摘錄(11)
3.?android開發過程中 R文件消失 clean 和 build project都無效 已解決(6)
4.?struts2 jsp表單提交后保留表單中輸入框中的值 下拉框select與input(6)
5.?jquery 自動過濾表單輸入框前后空格(5)
主站蜘蛛池模板:
田林县
|
淄博市
|
通海县
|
临高县
|
鄯善县
|
富阳市
|
高邑县
|
汉川市
|
达州市
|
阿尔山市
|
榆林市
|
民和
|
桃园县
|
滦平县
|
图片
|
孙吴县
|
绵阳市
|
禄丰县
|
金阳县
|
饶阳县
|
三都
|
崇仁县
|
西青区
|
综艺
|
金阳县
|
厦门市
|
阳高县
|
迁安市
|
巴东县
|
普兰店市
|
四子王旗
|
昆明市
|
建瓯市
|
泸定县
|
承德市
|
庆安县
|
嘉善县
|
鹿邑县
|
云南省
|
类乌齐县
|
黔南
|