关于Iterator的remove()方法
来源:互联网 发布:linux查看文件命令大小 编辑:程序博客网 时间:2024/05/24 01:47
Iterator的remove()方法只能删除之前next()方法返回的数据,否则会报错。
今天看到,java的NIO里面的SelectionKey,处理完key后,调用keyIterator.remove(); 对Iterator的remove()方法不是很熟悉,小测试了下,代码如下:
List<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
String str = i + "";
list.add(str);
}
java.util.Iterator it = list.iterator();
for (int i = 0; i < 5; i++) {
System.out.println((String) it.next());
}
for (int i = 0; i < 10; i++) {
String str = i + "";
list.add(str);
}
java.util.Iterator it = list.iterator();
for (int i = 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());
}
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
1
2
3
4
////////////////////////
0
1
2
3
5
6
7
8
9
很明显,remove()去掉的是当前it.next()返回的元素.到这里有个疑问,这个remove之后对下面的元素遍历有没有影响呢?又测试下,代码如下:
List<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
String str = i + "";
list.add(str);
}
java.util.Iterator it = list.iterator();
// for (int i = 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();
}
for (int i = 0; i < 10; i++) {
String str = i + "";
list.add(str);
}
java.util.Iterator it = list.iterator();
// for (int i = 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
1
2
3
4
5
6
7
8
9
remove()后,对下面的元素遍历没影响 .完毕
0 0
- 关于Iterator的remove()方法
- ArrayList、Iterator的remove方法
- Java Iterator的remove方法
- Java Iterator的remove()方法
- Iterator的remove方法的使用
- 关于list集合的remove和Iterator的remove
- 关于list集合的remove和Iterator的remove
- 使用Iterator的remove方法删除元素
- java Iterator.remove() 方法的用途
- java Iterator.remove() 方法的用途
- java collection Iterator的remove()方法
- 关于List的remove()方法
- Iterator的remove()和Collection的remove()
- Iterator的remove()和Collection的remove()
- Iterator的remove()和Collection的remove()
- Iterator的remove()和Collection的remove()
- 集合类的remove(obj)和iterator的remove方法差别
- 集合类的remove(obj)和iterator的remove方法差别
- PAT 一 城市间紧急救援
- String类中常用方法汇总整理(常用API)
- Hadoop 入门例子
- LSTM
- 塔防大战unity5.5版本系列(part2)
- 关于Iterator的remove()方法
- CentOS6.6 Apache2.4+tomcat7 安装配置
- var和function定义方法的区别
- Android中shape的使用
- Ubuntu 16.04 批量改文件名
- iOS :navigationbar隐藏之后手动加侧滑返回
- 如何更新 OpenStack 组件?- 每天5分钟玩转 OpenStack(161)
- 连续子数组的最大和:DP或者贪心
- Spring学习笔记-加深对Spring的理解