将带if条件的嵌套for循环转换为Java 8
我需要将下面的代码从java 7转换为java 8。 我尝试使用“Optional”类来简化它,但没有成功实现它。将带if条件的嵌套for循环转换为Java 8,java,arrays,java-stream,Java,Arrays,Java Stream,我需要将下面的代码从java 7转换为java 8。 我尝试使用“Optional”类来简化它,但没有成功实现它。 if(replacementResponse.getGroupResponse() != null) { for(GroupCommand groupCommand : replacementResponse.getGroupResponse().getValues()) {
if(replacementResponse.getGroupResponse() != null)
{
for(GroupCommand groupCommand : replacementResponse.getGroupResponse().getValues())
{
String groupQuery = groupCommand.getName();
for(Group group : groupCommand.getValues())
{
if(!group.getResult().isEmpty())
{
SolrDocumentList solrDocuments = group.getResult();
List<SolrDocument> documentList = null;
if(result.get(groupQuery) != null)
documentList = result.get(groupQuery);
else
documentList = new LinkedList<>();
for(SolrDocument solrDocument : solrDocuments)
{
documentList.add(solrDocument);
}
result.put(groupQuery, documentList);
}
}
}
return result;
}
return null;
if(replacementResponse.getGroupResponse()!=null)
{
对于(GroupCommand GroupCommand:replacementResponse.getGroupResponse().getValues())
{
字符串groupQuery=groupCommand.getName();
对于(组:groupCommand.getValues())
{
如果(!group.getResult().isEmpty())
{
SolrDocumentList solrDocuments=group.getResult();
List documentList=null;
if(result.get(groupQuery)!=null)
documentList=result.get(groupQuery);
其他的
documentList=新建LinkedList();
for(解决文档解决文档:解决文档)
{
文件列表。添加(解决方案文件);
}
结果.放置(groupQuery,documentList);
}
}
}
返回结果;
}
返回null;
我尝试将该方法拆分为两种方法,但我不知道如何在流媒体中实现“可选”
return Optional.ofNullable(replacementResponse.getGroupResponse())
.map(replacementGroupResponse -> getGroupResponse(replacementGroupResponse.getValues())).orElse(null);
documentList = Optional.ofNullable(result.get(groupCommand.getName())).orElse(new LinkedList<>());
replacementGroupResponse.stream()
.map(groupCommand -> groupCommand.getValues().stream()
.filter(group -> !group.getResult().isEmpty()).
返回可选的.ofNullable(replacementResponse.getGroupResponse())
.map(replacementGroupResponse->getGroupResponse(replacementGroupResponse.getValues()).orElse(null);
documentList=Optional.ofNullable(result.get(groupCommand.getName())).orElse(newlinkedlist());
replacementGroupResponse.stream()
.map(groupCommand->groupCommand.getValues().stream())
.filter(组->!组.getResult().isEmpty())。
您可以尝试以下方法将java 7代码迁移到java 8。可能会出现一些问题,因为我不知道SolrDocumentList、GroupCommand、Group等许多类的实现
return Optional.ofNullable(replacementResponse.getGroupResponse()).map(a -> a.getValues().stream()
.collect(Collectors.toMap(GroupCommand::getName,groupCommand -> groupCommand.getValues().stream()
.flatMap(group -> group.getResult().stream()).collect(Collectors.toCollection(LinkedList::new))))).orElse(null);
请包括你的尝试。如果没有这些,看起来你认为其他人应该为你做所有的重担。。。