gpt4 book ai didi

java - 用于自定义 "non-strict"排序的 Scala 或 java 数据结构

转载 作者:行者123 更新时间:2023-11-30 11:46:12 25 4
gpt4 key购买 nike

我有一组具有不同相等性和排序语义的项目。例如

class Item( 
val uid: String, // equality
val score: Int // sorting
)

我需要的是始终按分数对某些集合中的项目进行排序。奖励是通过相等性进行快速查找/成员检查(就像在散列/树中一样)。

相同的项目可以有不同的分数,所以我不能用分数相等作为前缀(即使用一种树/ HashMap )。

有什么关于组合 scala 或 java std 集合以用最少的代码实现这一点的想法吗? :)

最佳答案

我可能会使用 SortedSet因为它们已经排序了。正如 Woot4Moo 指出的那样,您可以创建自己的 Comparable (尽管我建议使用 Scala 的 ordering )。如果您将该排序作为参数传递给 SortedSet,则 Set 将为您整理所有内容 - SortedSet 始终是有序的。

注意:这是您需要的隐式参数,所以它可能看起来像这样:

val ordering = Ordering[...]
val set = SortedSet(1, 2, 3, ... n)(ordering)

注意最后一个参数作为顺序给出

关于java - 用于自定义 "non-strict"排序的 Scala 或 java 数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com