gpt4 book ai didi

java - 值高于某个阈值的 Guava Return 键

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:32 24 4
gpt4 key购买 nike

我有这段代码可以获取 map 并按键排序然后我反转 map ,首先让它们具有最大的元素。

Ordering<String> valueComparator = 
Ordering.natural().onResultOf(Functions.forMap(WordMap))
.compound(Ordering.natural());

WordMapSorted = ImmutableSortedMap.copyOf(WordMap,
Collections.reverseOrder(valueComparator));

我想知道两件事

  1. 如何只获取值大于 10 的键?我觉得考虑到使用 guava 进行排序应该有一种简单的方法来指定截止点(因为一旦您达到低于阈值的值,您只需获取它之前的所有项目)

  2. 如何获取 map 中的前100个条目(仍然是 map 形式)。我知道我可以只获取一组键并获取前 100 个,但我想要前 100 个映射条目。我知道通常 map 没有顺序,但在这种情况下,它已排序并变得不可变,因此它确实有顺序。

最佳答案

第一个观察:不需要使用 Collections.reverseOrder(valueComparator),您可以只使用 valueComparator.reverse()

1 需要一些技巧:

int index = Collections.binarySearch(WordMapSorted.values().asList(), 11);
index = (index >= 0) ? index : -index - 1;
// the elements at and after index have value strictly greater than 10
return WordMapSorted.keySet().asList().subList(index, WordMapSorted.size());

2 是这样的:

WordMapSorted.headMap(WordMapSorted.keySet().asList().get(100));

关于java - 值高于某个阈值的 Guava Return 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17457592/

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