gpt4 book ai didi

java - 使用预定义的比较器在 Java 中查找最大值

转载 作者:搜寻专家 更新时间:2023-11-01 00:59:13 24 4
gpt4 key购买 nike

我有一个 List<Foo> ,以及一个 compare() 方法,它接受两个 Foo 对象并返回“更大”的那个。是否有一个内置的 Java 方法可以获取列表并找到最大的一个?

最佳答案

如果Foo工具 Comparable<Foo> , 然后 Collections.max(Collection) 正是您要找的。

如果没有,你可以创建一个Comparator<Foo>并使用 Collections.max(Collection, Comparator) 相反。

例子

// Assuming that Foo implements Comparable<Foo>
List<Foo> fooList = ...;
Foo maximum = Collections.max(fooList);
// Normally Foos are compared by the size of their baz, but now we want to
// find the Foo with the largest gimblefleck.
Foo maxGimble = Collections.max(fooList, new Comparator<Foo>() {
@Override
public int compare(Foo first, Foo second) {
if (first.getGimblefleck() > second.getGimblefleck())
return 1;
else if (first.getGimblefleck() < second.getGimblefleck())
return -1;
return 0;
}
});

关于java - 使用预定义的比较器在 Java 中查找最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1669282/

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