1 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果用戶只選擇了一個(gè)選項(xiàng),它將被保存在 answer.id 中。如果他選擇了多個(gè)答案,我會(huì)將其添加到列表 answer.ids 中。
僅使用Answerwith可能會(huì)更好List<Long> ids。如果用戶只選擇一個(gè)選項(xiàng),您將只有一個(gè)元素的列表。它允許您按答案分組(不要忘記equals/hashcode)兩種情況:
Map<Answer, Long> collect = answers.stream()
.collect(groupingBy(Function.identity(), counting()));
但如果你想按List<Long>它分組,可以用同樣的方法:
Map<List<Long>, Long> collect = answers.stream()
.collect(groupingBy(Answer::choiceIds, counting()));
更新:按之前可以使用的子列表中的元素進(jìn)行分組flatMap:
Map<Long, Long> map = answers.stream()
.flatMap(answer -> answer.getIds().stream())
.collect(groupingBy(Function.identity(), counting()));
添加回答
舉報(bào)