大神求助一下

AXslashl 2018-05-31 06:25:14
ArrayList people = new ArrayList();
Iterator iterator = al.iterator();
while (iterator.hasNext()){
Object obj=iterator.next();
System.out.println(people.contains(obj));
if(!(people.contains(obj))){
people.add(obj);
}
}

上面这段代码 没问题 可以跑通、
但是当我不用obj 这个变量直接 使用iterator.next() 就不行了。
例如
ArrayList people = new ArrayList();
Iterator iterator = al.iterator();
while (iterator.hasNext()){
System.out.println(people.contains(iterator.next()));
if(!(people.contains(iterator.next()))){
people.add(iterator.next());
}

上面这段代码就不能跑通了,报nosuchelements异常 大神 谁给解释一下
...全文
505 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjjk 2018-06-01
  • 打赏
  • 举报
回复
iterator.next() 每调用一次都会获取下一个元素,所以,你改过之后的那段代码: System.out.println(people.contains(iterator.next())); if(!(people.contains(iterator.next()))){ people.add(iterator.next()); } 连续获取了三个,最后显然会超出集合范围。
AXslashl 2018-06-01
  • 打赏
  • 举报
回复
???没人吗

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧