List与Set都提供了遍历的方法。而Map则没有,看了api总结了3个遍历方法。
1,常用的,map集合有个values方法,意思将map的值返回为Collection视图,Collection是不是很熟悉,List和Set都继承了他。所以他有iterator方法,迭代器、那么可以把他值遍历出来了,。注意:map是无序的,所以遍历出来后是无训的。。
2.这个是通过key取值。map有个keyset方法,返回键的Set视图,set中不能存相同元素与map键不能相同正好。得到含有key的Set集合遍历set取值。
3,这个用到了Map.Entry这个东东。map的方法entrySet返回一个set集合set的泛型就是一个Map.Entry,每个Map.Entry都是一个map集合的键值对。调用set迭代器遍历出Map.Entry然后使用Map.Entry的getValue()方法。
代码
public class MapTest {
//通过values方法
private void MapTest1(HashMap<String, Object> map){
Collection<Object> c=map.values();
Iterator<Object> i=c.iterator();
for(;i.hasNext();){
System.out.println(i.next());
}
}
//通过keyset
private void MapTest2(HashMap<String, Object> map){
Set<String> set=map.keySet();
Iterator<String> i=set.iterator();
for(;i.hasNext();){
System.out.println(map.get(i.next()));
}
}
//通过Map.Entry
private void MapTest3(HashMap<String, Object> map){
Set<Map.Entry<String, Object>> set=map.entrySet();
Iterator<Map.Entry<String, Object>> i=set.iterator();
for(;i.hasNext();){
System.out.println(i.next().getValue());
}
}
public static void main(String[] args) {
HashMap<String, Object> map=new HashMap<String, Object>();
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
map.put("4", "d");
// new MapTest().MapTest1(map);
// new MapTest().MapTest2(map);
new MapTest().MapTest3(map);
}
}