Loading...
g.kolev avatar g.kolev 82 Точки

Материализиране на вложени асоциативни масиви

Здравейте.

Имам въпрос относно 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(...)

 

0
Fundamentals Module 31/03/2016 00:52:26
julieta.p.atanasova avatar julieta.p.atanasova 74 Точки

Пробва ли с toMap() от java.util.stream.Collectors?

T.e.

.collect(Collectors.toMap(...));

 

0
RoYaL avatar RoYaL Trainer 6849 Точки

Зарежи го този колектор :D За такива космати структури, дори и да успееш да го направиш, няма да можеш да си го прочетеш.

Просто форийча го направи да пише в новата карта.

6
evgenikolov avatar evgenikolov 304 Точки

Ех, тая Java :D

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.