【问题标题】:Find maximum of int elements using method reference [duplicate]使用方法参考查找最大 int 元素
【发布时间】:2019-05-21 11:49:08
【问题描述】:

我只是在学习 lambda 表达式和 stream()。我必须为一个名为ProgTetelek 的类编写一个方法,它可以找到列表元素的最大值。限制是:我必须避免使用forif 关键字、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());

【问题讨论】:

  • 是的,是……我没注意,抱歉。

标签: java java-8


【解决方案1】:

你可以使用Integer::compare:

public static Optional<Integer> getMax(List<Integer> lista) {
    return lista.stream()
                .max(Integer::compare);
}

【讨论】:

    猜你喜欢
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2018-04-14
    相关资源
    最近更新 更多