【问题标题】:Scala mutable collection with sorting on insertScala 可变集合,在插入时进行排序
【发布时间】:2016-02-18 16:19:23
【问题描述】:

我正在寻找一个可在插入时对元素进行排序的 Scala 可变顺序集合。 IE。在我完成插入元素后,对生成的集合进行排序。似乎这个东西不存在,但也许我错过了什么?实现起来可能不会那么难,但我不想重新发明轮子。

编辑:集合语义不合适,因为元素可能重复。

编辑:我正在寻找 Scala 集合,而不是 Java 集合。这个问题不是关于如何在 JVM 上实现这种行为,而是关于执行此操作的现有 Scala 集合。如果这样的事情不存在,我会接受这样的答案。

【问题讨论】:

  • 你可以使用 Java 的 TreeSet。它是可迭代的,所以我想它符合您的“顺序”标准?

标签: scala scala-collections


【解决方案1】:

你可以使用java.util.PriorityQueue

编辑

scala.collection.mutable.PriorityQueue。但只有dequeuedequeueAll 方法会保持顺序。

import scala.collection.mutable.PriorityQueue
val pq = new PriorityQueue()(Ordering[Int].reverse) //default is descending order
pq += 5
pq += 4
pq += 2
pq.enqueue    //2
pq.enqueueAll //Vector(4,5)

【讨论】:

    【解决方案2】:

    既然您正在寻找可变集合,请考虑使用 java 的 TreeSet

    【讨论】:

    • 设置语义不合适,因为元素可以重复。我已经更新了问题。
    • List 或其他集合类型的映射,或 Int 的映射(出现次数)
    猜你喜欢
    • 1970-01-01
    • 2019-09-17
    • 2012-12-07
    • 2016-08-28
    • 2011-03-18
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多