循环时不可以修改集合元素
来源:互联网 发布:java是操作系统吗 编辑:程序博客网 时间:2024/05/21 02:33
public class IteratorTest{public static void main(String[] args){// 创建集合、添加元素的代码与前一个程序相同Collection books = new HashSet();books.add("轻量级Java EE企业应用实战");books.add("疯狂Java讲义");books.add("疯狂Android讲义");// 获取books集合对应的迭代器Iterator it = books.iterator();while(it.hasNext()){// it.next()方法返回的数据类型是Object类型,因此需要强制类型转换String book = (String)it.next();System.out.println(book);if (book.equals("疯狂Java讲义")){// 从集合中删除上一次next方法返回的元素it.remove();}// 对book变量赋值,不会改变集合元素本身book = "测试字符串"; //①}System.out.println(books);}}
public class IteratorErrorTest{public static void main(String[] args){// 创建集合、添加元素的代码与前一个程序相同Collection books = new HashSet();books.add("轻量级Java EE企业应用实战");books.add("疯狂Java讲义");books.add("疯狂Android讲义");// 获取books集合对应的迭代器Iterator it = books.iterator();while(it.hasNext()){String book = (String)it.next();System.out.println(book);if (book.equals("疯狂Android讲义")){// 使用Iterator迭代过程中,不可修改集合元素,下面代码引发异常books.remove(book);}}}}
2.使用Iterator迭代过程中,不可修改集合元素。使用for,for-each循环时也不可以修改集合元素
1.for-each和foreach方法都是基于Iterator接口
2.stream可以看作Iterator的高级版本
3.iterator和stream,for循环等在操作时都不可以修改集合元素,也就是说使用流式操作修改集合元素是不允许的,可以通过生成新集合方式修改集合元素
0 0
- 循环时不可以修改集合元素
- Iterator遍历集合时不可以删除集合中的元素问题
- 集合循环时删除元素
- qtablewidget item不可以修改
- char *p 定义时指定的值不可以修改
- 2015063002 - foreach不可以用于过滤元素
- 循环删除list集合元素
- 增强for与iterator循环遍历和修改数组和集合中的元素
- 为什么java中迭代过程中不可以不可以添加或删除元素
- for循环删除集合元素vs迭代器删除集合元素
- UML核心元素!通俗易懂,你不可以错过!
- CSS哪些样式属性不可以被子元素继承?
- 为什么auto_ptr不可以用作stl容器的元素
- HashSet集合无索引 不可以重复 无序
- 不可以!
- 不可以!
- 不可以!
- 不可以!
- 机器学习——K-近邻(KNN)算法
- easyui 表单验证扩展
- 【JavaEE】经典JAVA EE企业应用实战-读书笔记12
- UML 九种图 炫彩
- 基于websocket技术的网页弹幕实现
- 循环时不可以修改集合元素
- js创建对象的几种模式
- Vuex 模块化与项目实例 (2.0)
- MVC 全局去除空格
- Android面试题收集
- 一致性哈希算法与Java实现
- 一种神奇的数据结构—小波树
- Nodejs Express 连接Mongodb
- angular.js学习笔记(二)