在 Java 中查找您编写的序列的最大元素:
GameState bestGs = Collections.max(ns,
Comparator.comparing(e -> minimax(e)));
这minimax是一个返回数字的函数,它ns是一个集合。代码有效,但是对于集合的每个元素,关键函数将被评估不止一次。我如何制作它以便每个元素只评估一次?在 Python 中你只会写max(seq, key = lambda e: minimax(e))Java 中一定有类似的东西吗?不要告诉我自己写forloop,这是我不应该写的21世纪!
显式循环代码如下:
GameState best = null;
// Doesn't matter what scalar type is used.
int bestScore = Integer.MIN_VALUE;
for (GameState n : ns) {
int thisScore = minimax(n);
if (thisScore > bestScore) {
bestScore = thisScore;
best = n;
}
}
我想在 Java 中以“函数式”方式编写上述内容,但也要保留高性能。
侃侃无极
潇湘沐
白板的微信
相关分类