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
语句的循环是不能做这样的操作的,只能使用迭代器。