耿老师教你学Java:关于Iterator迭代器的注意事项(耿祥义)

更新时间:2025-05-05 03:15:42 阅读: 评论:0

耿<a href=http://www.ranqi119.com/ge/78/731139.html style=老师教你学Java:关于Iterator迭代器的注意事项(耿祥义)"/>

耿老师教你学Java:关于Iterator迭代器的注意事项(耿祥义)

关于Iterator迭代器的注意事项

耿祥义

主要内容

iterator方法

ConcurrentModificationException异常

for-each遍历集合

for 遍历集合

代码与效果

维保合同范本1.iterator方法

Java集合框架中的Collectio狄光嗣n接口的方法:

返回当前集合的一个实现Iterator<E>接口的实例,称作当前集合的 迭代器,比如List<代理人授权委托书String>的实例list,调用iterator返回list的迭代器:

2.ConcurrentModificationException异常

需要注意的是,当在一个线程中 ,一旦iterator返回了某个集合的迭代器:iteraor,并开始使用这个迭代器(迭代器调用了某个方法),系统将禁止本线程或其它线程让集合调用自己的remove和add方法(例如list.remove(0))引起集合的结构发生变化,也禁止对集合进行排序,如果进行这些操作,程序运行时(无编译错误)将触发

java.util.ConcurrentModificationE子集个数怎么算xception异常。

必须自制草莓酱等到 iterator返回的迭代器被使用完毕,才允许集合 调用自己的remove和add方法或排序集合。

但是,程序允许迭代器iteraor调用自澳门1949己实现的 Iterator接口受宠若惊的近义词的中的remove方法删除当前迭代器的next返回的集合中的元素(Iterator接口没有提供add方法)。

3.for-each

使用for-each遍历一个集合时,禁止当前集合使用remove和add方法引起集合的结构发生变化,也禁止对集合进行排序。其原因是,for-each算法的内部中启用了集合的迭代器(用户知道即可,但用户程序不能显式地看见相应的代码)。例如下列代码无工资税率计算编译错误,但运行时可能将触发火车快跑ConcurrentModificationException异常

下列代码无编译错误,但运行时可电脑锁屏怎么设置能触发ConcurrentModificationException异常

下列代码无编译错误,但运行时可能将触发ConcurrentModificationException异常

注 但允许替换操作,比如,list.set(0,"你好");

5.for

普通的循环语句,默认不会触发集合的迭代器,因此不影响集合使用remove和add方法。例如,下列代码运行正常。

展开全文

6.实例代码与运行效果

MainClass.java

代码【1】替换为 list.add("Java");或 Collections.sort(list);将触发ConcurrentModificationException,运行效果如图:

代码【2】替换为 list.remove(s);或 Collections.sort(list);将触发ConcurrentModificationException,运行效果略。

耿祥义主要教材源代码暨习题解答下载

本文发布于:2023-07-26 07:24:18,感谢您对本站的认可!

本文链接:http://www.ranqi119.com/ge/78/635660.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:教你   注意事项   老师   迭代   Iterator
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26|友情:优美诗词|电脑我帮您|扬州装修|369文学|站长工具|软件玩家|水木编程|编程频道