gpt4 book ai didi

java - 在已排序的 HashMap 中选择顶部 'n' 条目

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

我已经研究过按值对 HashMap 进行排序 here但我不太确定如何提取此排序的 HashMap 的前“n”个条目。还是有更好的方法来实现这一点?

为了提供一些概述,我正在从事一个 P2P 项目,我在 peerID 和可以从每个对等点下载文件的相应速率之间维护一个映射。然后我需要选择下载率最高的前“n”个对等点。

最佳答案

显然,带有自定义比较器的 TreeMap 会是更好的选择,尤其是因为它有一个专门为此量身定制的方法:headMap(Key k) 它将为您提供到此 key 的所有条目。

另一方面,如果您坚持使用 HashMap,您可以为此使用 java-8:

yourMap.entrySet()
.stream()
.sorted(Comparator.comparing(e -> e.getValue(), Comparator.reverseOrder()))
.limit(n)
.collect(Collectors.toMap(Entry::getKey, Entry::getValue));

关于java - 在已排序的 HashMap 中选择顶部 'n' 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47445878/

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