Такой вопрос , почитал пару статей, не могу понять как работает здесь группировка , первый параметр вроде ясно, а во вторым туговато как то, не понимаю что нужно сделать. Знаю как сделать без стримов, но уж сильно хочется с этим разобраться. x -> x.getNumberTask() != 0 --это проверка, потому что все что без номера задачи равно 0
@Override
//    Возвращает мапу (номер_задачи : количество_попыток_решить_ее).
    public Map<Integer, Integer> getAllSolvedTasksAndTheirNumber(Date after, Date before) {
        return listItemBetweenDates(after,before).stream()
                .filter(x -> x.getNumberTask() != 0 & x.getEvent().equals(Event.SOLVE_TASK))
                .collect(Collectors.groupingBy(Item::getNumberTask, <ВТОРОЙ ПАРАМЕТР>));
    }