Java8将列表和子列表转换为单个映射 在Java8中,如何将列表和子列表转换为单个映射? 示例代码 Map pepAnswersMap=newhashmap(); for(Iterator Iterator=pepQuestions.Iterator();Iterator.hasNext();){ PepQuestionsDTO pepQuestion=迭代器.next(); pepAnswersMap.put(pepQuestion.getSign(),pepQuestion.getAnswer().getAnswer()); for(迭代器迭代器2=pepQuestion.getSubQuestions().Iterator();迭代器2.hasNext();){ SubQuestionsDTO subQuestion=iterator2.next(); peanswersmap.put(subQuestion.getSign(),subQuestion.getAnswer().getAnswer()); } }
您可以这样做:Java8将列表和子列表转换为单个映射 在Java8中,如何将列表和子列表转换为单个映射? 示例代码 Map pepAnswersMap=newhashmap(); for(Iterator Iterator=pepQuestions.Iterator();Iterator.hasNext();){ PepQuestionsDTO pepQuestion=迭代器.next(); pepAnswersMap.put(pepQuestion.getSign(),pepQuestion.getAnswer().getAnswer()); for(迭代器迭代器2=pepQuestion.getSubQuestions().Iterator();迭代器2.hasNext();){ SubQuestionsDTO subQuestion=iterator2.next(); peanswersmap.put(subQuestion.getSign(),subQuestion.getAnswer().getAnswer()); } },java,list,java-8,Java,List,Java 8,您可以这样做: pepQuestionsDTOS.stream() .flatMap(pepQuestion -> { pepAnswersMap.put(pepQuestion.getSing(), pepQuestion.getAnswer().getAnswer()); return pepQuestionsDTO.getSubQuestions().stream(); }
pepQuestionsDTOS.stream()
.flatMap(pepQuestion -> {
pepAnswersMap.put(pepQuestion.getSing(), pepQuestion.getAnswer().getAnswer());
return pepQuestionsDTO.getSubQuestions().stream();
})
.map(subQuestion -> new AbstractMap.SimpleEntry<>(subQuestion.getSing(),
subQuestion.getAnswer().getAnswer()))
.forEach(entry -> pepAnswersMap.put(entry.getKey(), entry.getValue()));
你需要解释你想在问题中做什么。代码没有解释任何东西,我们想知道你想要你的代码做什么,而它还没有做。我想把这个循环部分转换成java8流,然后写在你的问题中!在编写时,请编辑代码,使其成为最小的工作示例。
pepQuestionsDTOS.stream()
.flatMap(pepQuestion -> {
pepAnswersMap.put(pepQuestion.getSing(), pepQuestion.getAnswer().getAnswer());
return pepQuestionsDTO.getSubQuestions().stream();
})
.map(subQuestion -> new AbstractMap.SimpleEntry<>(subQuestion.getSing(),
subQuestion.getAnswer().getAnswer()))
.forEach(entry -> pepAnswersMap.put(entry.getKey(), entry.getValue()));
pepQuestionsDTOS.forEach(pepQuestion->
{
pepAnswersMap.put(pepQuestion.question, pepQuestion.getAnswer());
pepQuestion.getSubQuestions()
.forEach(pepQuestion ->
pepAnswersMap.put(pepQuestion.getSing(), pepQuestion.getAnswer().getAnswer()));
});