对于以下场景,最佳Scala集合(2.8+以上),可变或不可变的是什么:
目前我似乎在使用可变的ArrayBuffer获得了良好的性能,但有什么更好的吗?是否有一个不可改变的替代品也会这样做?提前谢谢。
答案 0 :(得分:4)
可变:ArrayBuffer
不可变:Vector
答案 1 :(得分:4)
如果您在随机位置插入项目超过访问它们的时间的log(N)/ N,那么您应该使用immutable.TreeSet
,因为所有操作都是O(log(N))。如果您主要访问或添加到(远)端,ArrayBuffer
和Vector
效果很好。
答案 2 :(得分:2)
Vector
。来自scalaz的IndSeq
应该会更好。