首页 > 解决方案 > 使用 Java 流从字符串数字列表中查找最大数字

问题描述

我正在尝试获取字符串列表中的最大数量。

我的代码是:

List<String> list = new ArrayList<String>();
list.add("00657");
list.add("00632");
list.add("00656");
list.add("01125");

Integer maxNum = list.stream()
                   .mapToInt(Integer::intValue)
                   .max();

上面的代码给出了一个错误。错误是:无法编译的源代码 - 错误的符号类型:java.util.stream.Stream.mapToInt.max。 我应该得到1125结果。我尝试了不同的方法,但没有一个有效。

标签: javajava-stream

解决方案


您需要将 s 解析StringIntegers,这可以使用parseInt

List<String> list = new ArrayList<>();
list.add("00657");
list.add("00632");
list.add("00656");
list.add("01125");

int maxNum = list.stream()
        .mapToInt(Integer::parseInt)
        .max()
        .orElse(-1);

因为无法保证您的流不会为空,所以这orElse就是需要的原因。


推荐阅读