用于逐步删除随机项目的首选Scala集合?

时间:2011-10-13 21:58:29

标签: scala scala-collections

我有一个算法需要多次迭代,每次迭代都会对一个集合中的项目进行评分,并删除得分最高的项目。

我可以使用初始填充填充Vector,不断将其替换为var,或者选择可变集合作为val。哪个可变集合最适合该法案?

2 个答案:

答案 0 :(得分:5)

您可以考虑DoubleLinkedList,它有一个方便的remove()方法来删除当前列表单元格。

答案 1 :(得分:4)

我认为Map(或其近亲,Set)可能会做得很好。它没有索引访问权限,但这似乎不是您想要的。如果您选择TreeMap,您甚至可以获得有序的收藏。

但是,我是否可以指出您的算法似乎需要Heap?堆优化用于重复查找/删除最大元素(或者,如果您反转构建堆的比较,则最小)。 Scala没有现成的堆,但是使用数组很容易实现堆。