我是靠谱客的博主 无聊大神,最近开发中收集的这篇文章主要介绍同一个Iterator迭代器只能遍历一次,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天在学习的时候,碰到用迭代器去遍历集合的时候一直没有元素输出,琢磨了好久我才知道 “同一个迭代器只能遍历一次,如果写了两个遍历,则第二个遍历无法输出”

我的问题原因"我想删掉集合中的一个元素然后再遍历输出,结果输出结果还是没有删除之前的"

public void test5(){
/*
迭代器当中的 remove方法
*/
Collection collection=new ArrayList();
collection.add(1234);
collection.add(new String("123"));
collection.add(new Person(18,"Jerry"));
Iterator iterator = collection.iterator();
while (iterator.hasNext()){
Object next = iterator.next();//next() 方法返回的是下一个对象
if (next.equals("123")){
iterator.remove();
}
System.out.println(next+"***");
}
while (iterator.hasNext()){
System.out.println(iterator.next()+"$$$$");
}
}
运行结果	:这就说明下一个迭代器根本没执行
1234***
123***
Person{age=18, name='Jerry'}***

经过我翻阅资料,才弄明白同一个迭代器只能遍历一次,于是再造一个迭代器,即可解决问题


public void test5(){
/*
迭代器当中的 remove方法
*/
Collection collection=new ArrayList();
collection.add(1234);
collection.add(new String("123"));
collection.add(new Person(18,"Jerry"));
Iterator iterator = collection.iterator();
while (iterator.hasNext()){
Object next = iterator.next();//next() 方法返回的是下一个对象
if (next.equals("123")){
iterator.remove();
}
System.out.println(next+"***");
}
Iterator iterator1 = collection.iterator();
while (iterator1.hasNext()){
System.out.println(iterator1.next()+"$$$$");
}
}
修改后的运行结果:正常遍历输出了
1234***
123***
Person{age=18, name='Jerry'}***
1234$$$$
Person{age=18, name='Jerry'}$$$$

总结:解决问题的过程是痛苦的,但是成功解决让人真的很开心!!!

最后

以上就是无聊大神为你收集整理的同一个Iterator迭代器只能遍历一次的全部内容,希望文章能够帮你解决同一个Iterator迭代器只能遍历一次所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部