gpt4 book ai didi

java-8 - 使用流获取 Map 的最大值

转载 作者:行者123 更新时间:2023-12-03 16:14:58 26 4
gpt4 key购买 nike

我有一个名为 Test 的类(class)。这个类有一个名为 getNumber 的方法,它返回一个 int 值。

public class Test{
.
.
.
.
public int getNumber(){
return number;
}
}

我还有一个 HashMap ,它的键是 Long ,值是一个 Test 对象。
Map<Long, Test> map = new HashMap<Long, Test>(); 

我想使用流线代码打印 key 和具有最大 getNumber 的 getNumber。

我可以通过以下几行打印最大数字
final Comparator<Test> comp = (p1, p2) -> Integer.compare(p1.getNumber(), p2.getNumber());

map.entrySet().stream().map(m -> m.getValue())
.max(comp).ifPresent(d -> System.out.println(d.getNumber()));

但是我的问题是如何返回最大金额的 key ?我可以使用流进行一轮吗?

最佳答案

如果我理解正确的话:

Entry<Long, Test> entry = map.entrySet()
.stream()
.max(Map.Entry.comparingByValue(Comparator.comparingInt(Test::getNumber)))
.get();

关于java-8 - 使用流获取 Map 的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46559454/

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