我只是在学习lambda表达式和流((。我必须为一个名为 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());
您可以使用Integer::compare
:
public static Optional<Integer> getMax(List<Integer> lista) {
return lista.stream()
.max(Integer::compare);
}