如何将元组添加到List并避免java.lang.UnsupportedOperationException

blu*_*sky 2 scala list scala-collections

当我尝试将类型(Int,String)的对象添加到我在以下异常中收到的List时:

var data = List((10, "test1"))                    
data.add((11, "here"))  

java.lang.UnsupportedOperationException
java.util.AbstractList.add(AbstractList.java:131)
java.util.AbstractList.add(AbstractList.java:91)
Run Code Online (Sandbox Code Playgroud)

如何将此元组(11,"here")添加到List'数据'?

为什么我收到这个例外?

Rex*_*err 9

您已scala.collection.JavaConversions._导入,并且您尝试add在Scala不可变列表上使用Java可变操作.

它不会起作用!

也许你只是想

var data = List((1, "one"))
data = (2, "two") :: data
Run Code Online (Sandbox Code Playgroud)

  • @Haider - 你可以使用`data = data:+((2,"two"))`,但你不应该使用`List`.列表附加很慢.如果你正在构建一个列表,请在最后添加并反转整个事物(或者使用`+ =`可变的`List.newBuilder`,然后在`result`的末尾生成不可变的`List`) . (3认同)