【发布时间】:2019-05-21 11:49:08
【问题描述】:
我只是在学习 lambda 表达式和 stream()。我必须为一个名为ProgTetelek 的类编写一个方法,它可以找到列表元素的最大值。限制是:我必须避免使用for 和if 关键字、add() 方法和嵌套类,但我必须使用stream() 和方法引用。方法的返回类型应该是可选的。
有人知道如何解决吗?也欢迎解决方案和好的教程:)
最简单的解决方案是这样,但它不使用方法引用...
public class Progtetelek {
public static Optional<Integer> getMax(List<Integer> lista) {
return lista.stream()
.max(Comparator.comparing(i -> i));
}
}
方法的规定调用是
List<Integer> lista = new ArrayList<Integer>();
lista.addAll(Arrays.asList(1, 5, 8, 7, 34, 23, 11, 84, 56));
System.out.println("Legnagyobb elem: " + ProgTetelek.getMax(lista).get());
【问题讨论】:
-
是的,是……我没注意,抱歉。