在使用Map的时候,想用Iterator直接遍历其值,总是不能实现,因为Map的entrySet()方法不能直接得到值的Set,而是一个Map.Entry的Set,那怎么办呢,其实,在Entry类也是一个Map,他为我们提供了一种取得其数据的方法,看以下代码:
//---------- 处理带图片新闻 -----------// Map picMap=(Map)request.getAttribute("PICMAP"); System.out.println("picture map size is :"+picMap.size());
Iterator picIter=picMap.entrySet().iterator();
while(picIter.hasNext()){ System.out.println("abcdefg");
Map.Entry en=(Map.Entry)picIter.next(); News n=(News)en.getValue();
System.out.println(n);
}
这样,我们就可以通过Iterator来以此取得Map中的数值. 如果我们直接通过Iterator picIter=picMap.entrySet().iterator();就取得其值的话,那么我们得到的是Map.Entry的实例,而不是你想要取得的对象 |