【发布时间】:2018-11-18 01:14:56
【问题描述】:
以下代码使用 Scala 2.12.7 和 Java 11.0.1 引发 UnsupportedOperationException。
listBuffer
.iterator
.dropWhile(_ != u)
.asJava
.remove()
为什么? ListBuffer 是可变的,在遍历时使用 Iterator 删除元素应该是有效的。 ListBuffer 包含 Int。
java.lang.UnsupportedOperationException was thrown.
java.lang.UnsupportedOperationException
at scala.collection.convert.Wrappers$IteratorWrapper.remove(Wrappers.scala:31)
at scala.collection.convert.Wrappers$IteratorWrapper.remove(Wrappers.scala:26)
at week4.UndirectedGraph.$anonfun$removeVertex$2(UndirectedGraph.scala:52)
at scala.runtime.java8.JFunction1$mcVI$sp.apply(JFunction1$mcVI$sp.java:12)
at scala.collection.immutable.List.foreach(List.scala:388)
at scala.collection.generic.TraversableForwarder.foreach(TraversableForwarder.scala:34)
at scala.collection.generic.TraversableForwarder.foreach$(TraversableForwarder.scala:34)
at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:43)
at week4.UndirectedGraph.$anonfun$removeVertex$1(UndirectedGraph.scala:50)
编辑:
不是this 问题的重复,因为问题是试图在结构上修改Arrays.asList 返回的列表。如果不是针对不知道答案但通常是第一个尝试将问题作为重复问题关闭的人,我不应该说显而易见的事情。
【问题讨论】:
-
堆栈跟踪在哪里?
listBuffer的内容是什么? -
@erip 这里的数组在哪里?
标签: java scala collections iterator