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

Java-stream(替换-loop)[重复]

钱振
2023-03-14

我是Java的新手,正在学习/尝试用流来理解系统。

在一个示例中,我有以下代码:

private Comment findComment(String author)
{                 
   for(Comments comment : comments) {
        if(comment.getAuthor().equals(author)) {
            return comment;
        }
    }
    return null;
}

出于培训的目的,我开始用流重写一些旧方法(大多数是用for-loops)以获得更多的实践。但是这个小方法让我用javadocs(+Google)坚持了三次以上,我仍然不知道哪里出了问题--它甚至不能编译:/

private Comment findComment(String author)
{
    return comments.stream()
              .filter(s -> author.equals(s.getAuthor()))
              .findFirst();
}

编辑(01.12.2020,10:13):我不得不编辑第一个代码段。返回语句错误(错别字……)

共有1个答案

齐琦
2023-03-14
private Comment findComment(String author)
{
    return comments.stream()
              .filter(s -> author.equals(s.getAuthor()))
              .findFirst()
              .orElse(null); // Here
}
 类似资料:
  • 我有和如下代码所示: 我尝试用< code>HashMap值替换该字符串,但这不起作用,因为< code>test是最终的,不能在< code>forEach的主体中重新分配。 那么有没有用Java 8 Stream API将< code>String替换为< code>HashMap的解决方案呢?

  • 我有一个大的json存储在一个字符串中。我想更改字符串的某些部分,但出现以下错误: 5/>(Pattern.java:3104)java.util.regex.Pattern.sequence(Pattern.java:2101)java.util.regex.Pattern.expr(Pattern.java:1964)java.util.regex.Pattern.compile(Patter

  • 我有一个循环,循环一个数据帧的长度,并遍历一个团队列表。我的循环应该经过41行,但它只做了2行,然后停止,我不知道为什么它停止了。在我看来,我应该循环通过整个41个队名单,但它停止后索引两个队。 这是运行日志

  • 问题内容: 我正在致力于Twitter数据标准化。Twitter用户经常使用诸如此类的术语来强调“爱”一词。我希望通过替换重复的字符,直到获得合适的有意义的词,将这样的重复字符变成一个适当的英语单词(我知道通过这种机制我无法区分善与恶)。 我的策略是 识别此类重复字符串的存在。我会寻找两个以上相同的字符,因为可能没有一个英文单词包含两个以上的重复字符。 在诸如Wordnet之类的词典中搜索此类单词

  • 问题内容: 我正在为我的Java防病毒程序使用沙箱功能,但遇到一个问题:类上的指定程序包对编译有意义吗? 示例:我正在运行一个要使用的程序,当类加载器尝试加载该文件以运行方法时,它是否检查文件中合格的软件包(如果存在)?我宁愿不要尝试在JVM中更改文件,而只是从其他包中加载文件。我可以完成加载,但我唯一的难题是它会崩溃并烧毁吗?在Java内部,它会被注册为,但是编译后的代码会说例如,是否需要扩展旧

  • 字符串方法有什么区别? 在下面的示例中,代码给出了< code >相同的输出。在这两种情况下,字符串的< code >所有实例都会被替换。 输出: 这里有一只狗,那里有一只 输出: 这里有一只狗,那里有一只