我有一个算法需要多次迭代,每次迭代都会对一个集合中的项目进行评分,并删除得分最高的项目。
我可以使用初始填充填充Vector
,不断将其替换为var
,或者选择可变集合作为val
。哪个可变集合最适合该法案?
答案 0 :(得分:5)
您可以考虑DoubleLinkedList
,它有一个方便的remove()
方法来删除当前列表单元格。
答案 1 :(得分:4)
我认为Map
(或其近亲,Set
)可能会做得很好。它没有索引访问权限,但这似乎不是您想要的。如果您选择TreeMap
,您甚至可以获得有序的收藏。
但是,我是否可以指出您的算法似乎需要Heap?堆优化用于重复查找/删除最大元素(或者,如果您反转构建堆的比较,则最小)。 Scala没有现成的堆,但是使用数组很容易实现堆。