java set、list等集合遍历中可能遇到的问题

Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(Unknown Source)

at java.util.HashMap$KeyIterator.next(Unknown Source)

java中的for-each遍历与迭代器遍历是十分便捷的工具。但在初次使用中非常容易犯下一边遍历某一集合,一边添加或减少集合中的元素的错误。

例如:

		Set<String> set = new HashSet<>();
		set.add("a");
		set.add("b");
		set.add("c");
		for(String string : set)
		{
			set.add(string+" ");
		}

我们尝试一边遍历集合,一边向集合中添加元素。这就会导致上述报错信息。

使用迭代器完成的循环与for-each同理。如果在循环中增删也会遇到同样的报错信息。

我们十分容易找到替代方案,只要在遍历过程结束后再进行对集合的增删即可。


猜你喜欢

转载自blog.csdn.net/ibukikonoha/article/details/79616538
今日推荐