Чтобы получить доступ к полям класса в Stream
, используйте map
:
games.stream().map(game ->
game.getOutcomes().stream().map(outcome -> {
// do something with each `outcome`
})
)
В приведенном выше коде предполагается, что getOutcomes()
возвращает List
, что не указано втекущая версия вопроса OP.
Обратите внимание, что вы не можете просто увеличить счетчики в пределах Stream
, как вы, возможно, надеетесь, потому что все переменные, используемые в Stream
s, должны быть окончательными или эффективно конечными.Вам нужно будет еще немного покопаться в Stream
API, чтобы понять, как увеличить, как вы делали это в исходном решении.
Подсказка: вы хотите сделать что-то вроде this , который использует Collectors.groupingBy () .