你出现错误的情况是因为:没调用一次iter.next(),都会输出一次,你for中如果输出两次的话,就相当于一次性的输出了两个对象,但是在判断时iter.hasNext();只能判断一次下一个是否为空 ,所以当集合中有奇数个对象时,最后一次判断时,集合中还有一个对象没有获取,但是在执行for语句时,剩下的那个对象只能满足一个iter.next(),而第二个iter.next()没有对象可以调用,因此返回错误
for(Iterator iter = map.keySet().iterator();iter.hasNext();) {
System.out.println(iter.next());
System.out.println( map.get(iter.next()));
}
你可以自己定义六个对象试一试
map.put("a", "zhangsan");
map.put("b", "lisi");
map.put("d", "wangwu");
map.put("e", "zhaoliu");
map.put("f", "yangqi");
map.put("g","haha"); |