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



我在Java中使用scala不可变列表。我想在列表的中间添加一个元素。有人能帮我一下吗?由于

sList为Scala List, List为Scala List类型,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 ) );

对一个模糊问题的模糊回答:

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

请添加一些代码,如果你需要更多的细节

嗯…你正在使用一个不可变列表。"不可变"这个词的意思是它不能被改变——如果有一种方法可以将一个元素添加到这样一个列表的中间,那将是一个bug。

Edit:实际上,可能有一些方法可以在这样的列表中添加元素——可能在JVM级别操作相应的数据就可以做到这一点——但这仍然是不好的,因为其他使用不可变列表的程序都希望列表始终保持不变。

最新更新