黑马程序员技术交流社区
标题:
关于Map集合遍历后输出时的一个问题
[打印本页]
作者:
黑马乔荣柱
时间:
2012-10-17 11:21
标题:
关于Map集合遍历后输出时的一个问题
本帖最后由 彼岸花 于 2012-10-17 12:19 编辑
import java.util.*;
class Demo
{
public static void main(String[] args)
{
Map<Integer,String> map=new HashMap<Integer,String>();
map.put(123,"abc");
map.put(423,"akc");
map.put(163,"obc");
Set<Integer> keys=map.keySet();
for(Iterator<Integer> it=keys.iterator();it.hasNext();){
int key=it.next();
String value=map.get(key);
System.out.println("KEY:"+key+" VALUE:"+value);
}
}
}
上面红字部分是正常的方法,现在将红字部分换为:
System.out.println("KEY:"+it.next()+" VALUE:"+map.get(it.next()));
输出结果是错误的,而且会出现异常,这是为什么呢?
作者:
严海荣
时间:
2012-10-17 11:46
因为你打印的里面出现了 2个 it.next(),肯定是这个出问题了,it.next()就不断往下一个去了。key和value的值也不对应了。当基数个的时候,第一个it.next()就到底了,后面就要报错了。
作者:
黑马乔荣柱
时间:
2012-10-17 12:18
严海荣 发表于 2012-10-17 11:46
因为你打印的里面出现了 2个 it.next(),肯定是这个出问题了,it.next()就不断往下一个去了。key和value的 ...
谢谢,说的真好!!:handshake
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2