您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第13章:Java类集】_Iterator接口
发布时间:2021-01-02 16:28:47编辑:雪饮阅读()
Iterator用于迭代类集
其实和遍历差不多的
hasNext方法用于判断是否还有下一个元素,next方法则就是下一个元素
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
public class TestJava{
public static void main(String args[]){
List<String> all=new ArrayList<String>();
all.add("kasumi");
all.add("ayane");
all.add("momiji");
all.add("snowDrink");
Iterator<String> iter=all.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
}
}

iterator也提供remove操作可以将类集的某个元素删除掉
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
public class TestJava{
public static void main(String args[]){
List<String> all=new ArrayList<String>();
all.add("kasumi");
all.add("ayane");
all.add("momiji");
all.add("snowDrink");
Iterator<String> iter=all.iterator();
while(iter.hasNext()){
String str=iter.next();
if("ayane".equals(str)){
iter.remove();
}
else{
System.out.println(str);
}
}
System.out.println("删除之后的集合:"+all);
}
}
D:\>javac TestJava.java
D:\>java TestJava
kasumi
momiji
snowDrink
删除之后的集合:[kasumi, momiji, snowDrink]
需要注意的是在使用了iterator迭代的时候进行删除操作的时候就不要用类集中自有的remove操作了,而是只能用iterator中提供的remove方法,否则会有意想不到的错误发生。
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
public class TestJava{
public static void main(String args[]){
List<String> all=new ArrayList<String>();
all.add("kasumi");
all.add("ayane");
all.add("_") ;
all.add("momiji");
all.add("snowDrink");
Iterator<String> iter=all.iterator();
while(iter.hasNext()){
String str=iter.next();
if("_".equals(str)){
all.remove(str);
}
else{
System.out.println(str);
}
}
System.out.println("删除之后的集合:"+all);
}
}
D:\>javac TestJava.java
D:\>java TestJava
kasumi
ayane
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at TestJava.main(TestJava.java:14)
关键字词:java,Iterator