我在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 ) );
对一个模糊问题的模糊回答:
有几种方法可以分割不可变列表,例如使用take
和drop
。从各个部分(包括中间元素),你可以组装一个新的不可变列表,例如使用:::
,在Java, IIRC中应该称为$colon$colon$colon
。
请添加一些代码,如果你需要更多的细节
嗯…你正在使用一个不可变列表。"不可变"这个词的意思是它不能被改变——如果有一种方法可以将一个元素添加到这样一个列表的中间,那将是一个bug。
Edit:实际上,可能有一些方法可以在这样的列表中添加元素——可能在JVM级别操作相应的数据就可以做到这一点——但这仍然是不好的,因为其他使用不可变列表的程序都希望列表始终保持不变。