Статистика по транзакциям с помощью Stream API

Java Средний streams

Задача «Статистика по транзакциям с помощью Stream API»

Дан список строк, каждая строка содержит информацию о транзакции: идентификатор транзакции, сумму (double) и категорию (одно слово, может быть с заглавной буквы). Необходимо с помощью Stream API сгруппировать транзакции по категориям (регистр не важен, привести к нижнему регистру) и для каждой категории вывести общую сумму транзакций, округлённую до двух знаков после запятой. Вывести результат в виде строк: категория: сумма. Категории отсортировать по алфавиту. Если категория пустая, игнорировать такие транзакции.

Формат ввода

В первой строке целое число N (1 ≤ N ≤ 1000). Далее N строк, каждая в формате: id сумма категория (разделитель пробел). Сумма — число с плавающей точкой, категория — строка без пробелов.

Формат вывода

Для каждой категории с ненулевой суммой вывести строку: категория: сумма (сумма с двумя знаками после запятой). Категории в порядке возрастания (лексикографически). Если нет ни одной корректной транзакции, вывести "-".

main.java