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