Map<String,String>
map =
new
HashMap<String,String>(){};
map.put(
"a"
,
"A"
);
map.put(
"b"
,
"B"
);
map.put(
"c"
,
"C"
);
Set
set = map.keySet();
Iterator
it = set.iterator();
while
(it.hasNext()){
String
str = it.next().toString();
}
Set<Entry<String,String>>
entryset = map.entrySet();
Iterator
iter = entryset.iterator();
while
(iter.hasNext()){
Entry<String,String>
entry = (Entry<String,String>)iter.next();
}
for
(Entry<String,String>
entry : map.entrySet()){
String
strkey = entry.getKey();
String
strval = entry.getValue();
}
首先,使用entryset比使用keyset的效率要高。所以建議用後
2
種方法。
第二和第三種的區別其實就是使用迭代器iteratior和使用一般的
for
語句的區別,和map本身倒沒什麼關係。最簡單的判斷方法,就是對要迭代的內容(本例是個map,如果是一個list同理),在循環過程中,你需要進行add或者remove操作不。
for
語句的循環是不能做這樣的操作的,只能使用迭代器。