在java中,遍历hashmap用什么方法

如题所述

public class MapTest {
public static void main(String[] args) {
//先来一个map
Map<String,String> map=new HashMap<String,String>(){{//匿名内部类初始化
put("breakfast", "早点");
put("lunch", "中饭");
put("supper", "晚点");
}};
//遍历方法1:利用keyset进行遍历,它的优点在于可以根据你所想要的key值得到你想要的 values,更具灵活性!!
Set<String> keySet=map.keySet();
for(Iterator<String> it=keySet.iterator();it.hasNext();){
String s=it.next();
System.out.println(map.get(s));
}
//遍历方法2:最常规的一种遍历方法,最常规就是最常用的,虽然不复杂,但很重要,这是我们最熟悉的,就不多说了!!
Collection<String> c = map.values();
for(Iterator<String> it=c.iterator();it.hasNext();){
System.out.println(it.next());
}
//遍历方法3:比较复杂的一种遍历在这里,用map对象的keyEnter方法,呵呵~~他很暴力哦,它的灵活性太强了,想得到什么就能得到什么
Set<Map.Entry<String, String>> set=map.entrySet();
for(Iterator<Map.Entry<String, String>> it=set.iterator();it.hasNext();){
Map.Entry<String, String> mapEnter=it.next();
System.out.println("key="+mapEnter.getKey()+",value="+mapEnter.getValue());
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-19
我之前的笔记,参考一下吧:

Map遍历:(三种方法)
Collection<Student> c = map.values();
Iterator<Student>
it = c.iterator();
while
(it.hasNext()) {
Student
s = it.next();
}

Set<String> set = map.keySet();
Iterator<String>
it1 = set.iterator();
while
(it1.hasNext()) {
System.out.println(map.get(it1.next()).getAge());
}

Set<Map.Entry<String, Student>> entry = map.entrySet();
Iterator<Entry<String,
Student>> it2 = entry.iterator();
while
(it2.hasNext()) {
Entry<String,
Student> en = it2.next();
String
key = en.getKey();
Student
s = en.getValue(); }本回答被网友采纳
第2个回答  2012-08-19
key是不重复的,取出key ,对key迭代,取出value也Ok了
相似回答