Материализиране на вложени асоциативни масиви
Здравейте.
Имам въпрос относно Stream API и по-точно материализирането на вложени колекции. Доста подробно разгледах документацията на Collectors класа, но така и не успях да разбера напълно концепцията.
Това е решение на Log Parser, изпитна задача давана на изпит по Java Fundamentals. В случая съм я решил без да материализирам самия речник. Вместо това с .forEach({..}) принтирам вече филтрираната колекция.
Въпросът ми е как мога да върна резултата от сортирането и филтрирането в нов асоциативен масив по този начин?
TreeMap<String, TreeMap<String, ArrayList<String>>> collectedDatabase = new TreeMap<>();
collectedDatabase = database.entrySet().stream()
.sorted((e1, e2) ->
Integer.compare(
e2.getValue().get("Warning").size() + e2.getValue().get("Critical").size(),
e1.getValue().get("Warning").size() + e1.getValue().get("Critical").size()))
.collect(...)
Ех, тая Java :D