如果你想要最高级别,那就是max().但是你想要最高级别的对手.在Eclipse Collections中,我们称之为模式maxBy().如果你可以替换你ArrayList的MutableList那么它变成:
MutableList<Opponent> opponents = ...;
Opponent opponent = opponents.maxBy(Opponent::getDeadlyLevel);
Run Code Online (Sandbox Code Playgroud)
如果您不能或不会转换ArrayList,您仍然可以使用静态实用程序Iterate.
Opponent opponent = Iterate.maxBy(opponents, Opponent::getDeadlyLevel);
Run Code Online (Sandbox Code Playgroud)
你可以用Collections.max()它Comparator.comparing()来构建Comparator.
Opponent opponent =
Collections.max(opponents, Comparator.comparing(Opponent::getDeadlyLevel));
Run Code Online (Sandbox Code Playgroud)
或者您可以使用Java 8 Streams.
Optional<Opponent> optionalOpponent =
opponents.stream().max(Comparator.comparing(Opponent::getDeadlyLevel));
Opponent opponent = optionalOpponent.get(); // If you're sure there's at least one
Run Code Online (Sandbox Code Playgroud)
注意:我是Eclipse Collections的提交者.