java Iterator.remove()实例方法分析
今天看到,java的NIO里面的SelectionKey,处理完key后,调用keyIterator.remove();对Iterator的remove()方法不是很熟悉,小测试了下,代码如下:
Listlist=newArrayList (); for(inti=0;i<10;i++){ Stringstr=i+""; list.add(str); } java.util.Iteratorit=list.iterator(); for(inti=0;i<5;i++){ System.out.println((String)it.next()); } it.remove(); System.out.println("////////////////////////"); it=list.iterator(); while(it.hasNext()){ System.out.println((String)it.next()); }
0
1
2
3
4
////////////////////////
0
1
2
3
5
6
7
8
9
很明显,remove()去掉的是当前it.next()返回的元素.到这里有个疑问,这个remove之后对下面的元素遍历有没有影响呢?又测试下,代码如下:
Listlist=newArrayList (); for(inti=0;i<10;i++){ Stringstr=i+""; list.add(str); } java.util.Iteratorit=list.iterator(); //for(inti=0;i<5;i++){ //System.out.println((String)it.next()); //} //it.remove(); //System.out.println("////////////////////////"); //it=list.iterator(); //while(it.hasNext()){ //System.out.println((String)it.next()); // //} while(it.hasNext()){ System.out.println((String)it.next()); it.remove(); }
运行代码如下:
0
1
2
3
4
5
6
7
8
9
remove()后,对下面的元素遍历没影响.完毕!
实例扩展:
@Test
publicvoidtt(){
Listlist=newArrayList();
list.add("0");
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");
list.add("10");
list.add("11");
list.add("12");
list.add("13");
list.add("14");
list.add("15");
list.add("16");
list.add("17");
list.add("18");
list.add("19");
list.add("20");
inti=0;
Iteratorit=list.iterator();
while(it.hasNext()){
Stringstr=it.next();
if(i%2==0){
System.out.println(i+"==="+str);
it.remove();
}
i++;
}
for(Stringstr:list){
System.out.println(str);
}
}
到此这篇关于javaIterator.remove()实例方法分析的文章就介绍到这了,更多相关javaIterator.remove()方法内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!