当前位置: 首页 > 知识库问答 >
问题:

使用 Java 流从字符串编号列表中查找最大编号

汝开畅
2023-03-14

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

我的代码是:

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();

上述代码给出了一个错误。错误是:不可编译的源代码-错误的sym类型:Java . util . stream . stream . maptoint . max .结果我应该得到< code>1125。我尝试了不同的方法,但是没有一种有效。

共有3个答案

孔运良
2023-03-14

@Abdusoli mapToInt只能映射int类型的数据,因此您必须首先将其解析为int,最终结果是OptInt,因此应将其转换为Int。您可以尝试两种方式

第一种方法

Integer maxNum = list.stream()
                .mapToInt(Integer::parseInt)
                .max()
                .getAsInt();
        System.out.println(maxNum);

第二种方法

Integer maxNum = list.stream()
                .map(Integer::parseInt)
                .mapToInt(Integer::intValue)
                .max().getAsInt();
        System.out.println(maxNum);
徐旻
2023-03-14

< code>mapToint不将任何对象(如< code>String)映射到整数。它用于将< code>Integer类型流映射到< code>int流。

您需要首先使用<code>map<code>和<code>parseInt<code>将<code>字符串

使用下面这段代码:

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

希望这有帮助!

贲高寒
2023-03-14

您需要将 Strings 解析为 Integers,这可以使用 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

 类似资料:
  • 我有一个字符串s和一个整数k(子字符串长度),我正在尝试编写函数,这样它就可以找到长度为k的最小和最大的子字符串。并返回一个字符串,其中最小和最大的子字符串与换行符组合在一起。 到目前为止,我用下面的方法解决了这个问题,我编写了相同的代码来查找最小和最大的子字符串,然而,我想用流返回两个子字符串的单行代码。 我非常感谢任何建议,因为我现在正在学习lambda和stream。 那么,我该如何优雅地解

  • 我有超过15个字符串列表,每个列表包含几个不同的代码。每个列表包含一种特定类型的代码。我有一个输入代码,必须找出该输入代码属于哪个列表,并根据结果返回一个特定字符串。我用if,else if来做这个。下面是示例代码 每个列表如下所示:公共静态列表codeTypeOneList=新ArrayList(); (其他代码类型的类似列表) 有没有更好的方法来实现这一点?谢谢

  • 我有一个字符串“1,3,5,7,9,11,12,14”,我想检查该字符串在java中是否包含“12,3,14”。 我的代码:

  • 我的一个朋友问我关于他们的讲师作为练习给他们的一个编码挑战。我找到了一个解决办法。但我认为,对于一个简单的分类问题来说,这个解决方案太长了。所以,我想问一下,是否有更直接的方法来解决这个挑战。 具有函数third_greatest(),它接受一个字符串数组并返回第三大单词。因此,例如:如果数组是[“你好”、“世界”、“之前”、“中午”],则输出应该是“世界”,因为“之前”是六个字母长,“你好”和“