使用Java Streams根据条件从对象将值设置为字符串变量

我是Java流的新手。我有一个需要使用Java流编写的代码段。我试图根据条件为字符串设置一个值。我试图寻找解决方案,并通过使用anyMatch进行了尝试,但是却无济于事。

      String loadAGENTID = "";
      for(ReportGenerationParameter rgp : loadReportTableExt.getReportGenerationParameters()){
          if(rgp.getKey().equalsIgnoreCase(RapFilter.IDUSR)){
              loadAGENT_ID = rgp.getValue();
          }
      }

字符串loadAGENTID将在代码中使用。任何建议都欢迎。谢谢。

Attempt : boolean todoName = Arrays.stream(loadReportTableExt.getReportGenerationParameters()) .anyMatch(item -> item.getKey().equalsIgnoreCase(RapFilter.IDUSR)); if (todoName) { loadAGENT_ID = item.getValue(); // want to set the value of the respective object. }

评论
  • G小调
    G小调 回复

    Use the filter to find the matching object and then use findFirst which returns the first matching element

    String loadAGENTID  = loadReportTableExt.getReportGenerationParameters()
                                            .stream()
                                            .filter(rgp-> rgp.getKey().equalsIgnoreCase(RapFilter.IDUSR))
                                            .findFirst()
                                            .map(rgp->rgp.getValue())
                                            .orElse("");  //default value