Я хочу сгруппировать и подсчитать элементы в подсписке, используя потоки Java.
Например, у меня есть ответ типа AnswerWithOneCorrectOption, который выглядит следующим образом:
class AnswerWithOneCorrectOption {
Long choiceId;
}
Этот тип ответаимеет только одну правильную опцию и хранится в "AnswerWithOneCorrectOption.id".Я выполняю потоковую передачу по списку AnswerWithOneCorrectOption, группирую их по идентификатору и рассчитываю с использованием:
private Map<Long, Long> countChoicesAndGroup(List<AnswerWithOneCorrectOption> answers){
Map<Long, Long> map = answers.parallelStream()
.collect(Collectors.groupingBy(AnswerWithOneCorrectOption::getChoiceId,
Collectors.counting()));
return map;
}
Предположим, у меня есть другой тип ответа, который может иметь несколько правильных параметров.Я сохраняю эти опции в List<Long> choiceIds
.
class AnswerWithMultipleCorrectOptions {
List<Long> choiceIds;
}
Как я могу сгруппировать по choiceId в List<Long> choiceIds
и считать?