我在Scala中寻找一种数据结构,它允许我按照一个条件对集合进行排序,但允许重复该条件。最好的例子可能是人。他们可以按年龄排序,显然,两个年龄相同的人不一定是同一个人。这个问题在here前一段时间就被问到了,但是我没有得到解决方案。我已经测试了大多数常规排序结构和推荐的PriorityQueue,它不提供全局排序,所以我不能使用它。在这种情况下是否有一些更新或仍然与所提出的问题相同?注意:我不能考虑在修改后对一些常规结构进行排序,因为这些修改非常频繁,并且需要集合处于排序状态
iyr7buue1#
从所有的评论和其他引用的帖子来看,对我有效的解决方案是连锁排序。例如:
val ordering: Ordering[T] = Ordering .by[T](/*your criteria*/) .orElseBy(/*tie breaker criteria*/)
字符串请注意,这并不保证将保留完整的副本。也可以根据需要有尽可能多的链式标准。
1条答案
按热度按时间iyr7buue1#
从所有的评论和其他引用的帖子来看,对我有效的解决方案是连锁排序。例如:
字符串
请注意,这并不保证将保留完整的副本。也可以根据需要有尽可能多的链式标准。