簡體   English   中英

Seq用於快速隨機訪問和Scala中的快速增長

[英]Seq for fast random access and fast growth in Scala

對於以下場景,什么是最好的Scala集合(2.8+),可變或不可變的:

  • 按順序排序,所以我可以按位置訪問項目(一個Seq)
  • 需要經常插入物品,因此集合必須能夠在沒有太多懲罰的情況下成長
  • 隨機訪問,經常需要刪除和插入集合中任意索引的項目

目前我似乎在使用可變的ArrayBuffer獲得了良好的性能,但有什么更好的嗎? 是否有一個不可改變的替代品也會這樣做? 提前致謝。

Mutable: ArrayBuffer
不變: Vector

如果您在隨機位置插入項目超過訪問它們的時間的log(N)/ N,那么您應該使用immutable.TreeSet因為所有操作都是O(log(N))。 如果您主要訪問或添加到(遠)端, ArrayBufferVector工作正常。

Vector IndSeqscalaz應該會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM