Java——LinkedList,Iterator();使用it.hasNext()报错的解决方案

导读:本篇文章讲解 Java——LinkedList,Iterator();使用it.hasNext()报错的解决方案,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

使用LinkedList实例化一个list集合,通过Iterator()方法序列化集合中的对象。

java.util.Iterator<String> it = list.iterator();
while (it.hasNext()) {
			System.out.println(it.next());
		}
	在循坏输出时出现以下错误:
Exception in thread "main" java.util.ConcurrentModificationException
	at java.base/java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:970)
	at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:892)
	at day1.addAll.main(addAll.java:32)

错误:执行完循环语句System.out.println(it.next());这句代码执行时不仅会返回游标右边的元素还会把游标移动到下一个位置。而list.iterator()不会发生变化,没有循环机制,只要判断list.iterator()游标右边有元素就会一直执行,造成死循环。

解决办法:
将while()语句改成for语句,如下:

		for (int i = 0; i < list.size(); i++) {   
			System.out.println(list.get(i));
		}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73728.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!