在Java中的scala.collection.immutable.list中间添加元素

时间:2011-07-06 04:39:06

标签: scala

我在Java中使用scala不可变列表。我想在此列表的中间添加元素。请有人帮我这个吗? 感谢

3 个答案:

答案 0 :(得分:6)

sList成为Scala列表,让List成为Scala列表类型,42添加要素:

final int half = sList.size /2;
final List<Int> first = sList.take(half);
final List<Int> second = sList.drop(half);
final List<Int> result = first.$colon$colon$colon( second.$colon$colon( 42 ) );

答案 1 :(得分:2)

对模糊问题的模糊回答:

有几种方法可以分割不可变列表,例如使用takedrop。从部分(包括您的中间元素),您可以组装一个新的不可变List,例如使用:::,在Java,IIRC中应该称为$colon$colon$colon

如果您需要更多详细信息,请添加一些代码。

答案 2 :(得分:0)

嗯......你正在使用一个不可变的列表。 “不可变”这个词的含义是它不能被改变 - 如果有一种方法可以将一个元素添加到这样一个列表的中间,那就是一个bug。

编辑:实际上,有可能在这样的列表中添加元素 - 可能在JVM级别操作相应的数据就可以了 - 但这仍然很糟糕,因为其他所有使用不可变列表的程序期望该列表始终保持不变。