gpt4 book ai didi

java - 在 MinMaxPriorityQueue Guava 中更改比较器

转载 作者:行者123 更新时间:2023-11-29 06:57:47 25 4
gpt4 key购买 nike

我最近在使用 MinMaxPriorityQueue。我的目标是从一些文本文件中获取顶级元素。队列正在使用 Ordering.natural(),但我想将其更改为 Ordering.natural().reverse()。它没有用,我不知道如何设置它。

Comparator<Long> comp = Ordering.natural().reverse();
MinMaxPriorityQueue<Long> pq = MinMaxPriorityQueue.maximumSize(11).create();
pq.orderedBy(comp);
System.out.println(pq.comparator());

输出无论如何都会返回 Ordering.natural()。我该如何管理?非常感谢!

最佳答案

您必须在创建队列时传递 Comparator,否则它将采用 Ordering.natural() 作为默认排序。根据 javadocs

If no comparator is given at construction time, the natural order of elements is used.

因此,如果您需要反向排序,请通过传递 Comparator

创建队列
Comparator<Long> comp = Ordering.natural().reverse();
MinMaxPriorityQueue<Long> pq = MinMaxPriorityQueue.orderedBy(comp).maximumSize(11).create();

关于java - 在 MinMaxPriorityQueue Guava 中更改比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277959/

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