Comment utiliser le groupe par pour obtenir une liste de nouvelle colonne dans une entité

user1298426:

Je entité de réponse qui a des valeurs comme celui-ci

question answer 
1           x
2           y
3           z
4           p
1           x
2           q
3           r

J'ai besoin d'obtenir des réponses aux questions par groupe

Map<Integer, List<String>>
<1, [x,x]
 2, [y,p]
 3, [z,r]
 4, [p]>

Je pourrais obtenir List<Answer>comme ça

Map<Integer, List<Answer>> collect = answers
    .stream()
    .collect(Collectors.groupingBy(Answer::getQuestion));

mais je ne peux pas trouver un moyen de l' obtenir comme List<String>plutôt que List<Answer>?

Eugène :
 Map<Integer, List<String>> collect = answers
         .stream()
          .collect(Collectors.groupingBy(
                Answer::getQuestion,
                Collectors.mapping(Answer::getAnswerAsString, Collectors.toList())       
));

il suffit de remplacer getAnswerAsStringavec la méthode que vous avez que vous obtient cette chaîne de Answer.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=178300&siteId=1
conseillé
Classement