对于map接口来说,其本身不能直接使用迭代方式(iterator , foreach)进行输出,因为map接口中的每个位置存放的是一对值(key-->value),而iterate中每次只能找到一个值,所以如果非要使用迭代方式进行输出,则必须按照以下步骤完成(以iterator输出方式为例).
- 将map接口的实例通过entryset()方法变成set接口对象.
- 通过set接口实例为iterator实例化.
- 通过iterator迭代输出,每个,每个内容都是map.entry的对象.
- 通过map.entry进行key-->value的分离.
map输出方式一,使用iterator输出map
map<string,string> map = null;
map = new haspmap<string,string>();
map.put("a","aaaaa");
map.put("b","bbbbb");
map.put("c","cccccc");
set<map.entry<string,string> > allset = null;
allset = map.entryset();
Iterator<Map.Entry<String, String>> iter = null; // 实例化iterator
iter = allset.iterator();
while (iter.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) iter
.next();
System.out.println(entry.getKey() +"-->"+entry.getValue()); //输出key和value
}
iter = allset.iterator();
while (iter.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) iter
.next();
System.out.println(entry.getKey() +"-->"+entry.getValue()); //输出key和value
}
map输出方式二 ,使用foreach输出map
Map<String, String> map = new HashMap<String,String>();
map.put("ss", "ssssssssss");
map.put("aa", "ssssaass");
map.put("bb", "ssbbbss");
for (Map.Entry<String, String> me : map.entrySet()) { //输出set集合
System.out.println(me.getKey() +"--->"+me.getValue()); //输出key和value
}
map.put("ss", "ssssssssss");
map.put("aa", "ssssaass");
map.put("bb", "ssbbbss");
for (Map.Entry<String, String> me : map.entrySet()) { //输出set集合
System.out.println(me.getKey() +"--->"+me.getValue()); //输出key和value
}