Как сгруппировать список объектов по атрибуту, а затем повторить результаты, используя пару (Key, Value)? - PullRequest
0 голосов
/ 19 февраля 2019

Я хочу сгруппировать список объектов по атрибуту, а затем повторить результаты, используя пару (Key, Value).

Я нашел способ в Java 8 сгруппировать список объектов с атрибутомследующим образом

// filteredPageLog has the filtered results from PageLog entity.

Map<String, List<PageLog>> results = 
filteredPageLog.stream().collect(Collectors.groupingBy(p -> p.getSessionId()));

Но результаты будут иметь только наборы записей (имеет значения внутри атрибута entrySet).KeySet и valueSet будут иметь нулевые значения.Я хочу повторить что-то вроде

results.forEach((key,value) -> {
//logic
});

Ответы [ 3 ]

0 голосов
/ 19 февраля 2019

В Java нет кортежей. Здесь вы можете найти более подробное объяснение.Вы можете перебирать ключи, значения или записи, но не кортежи.

0 голосов
/ 19 февраля 2019

Пустышка map:

Map<String,String> map = new HashMap() {{
             put("1","20");
             put("2","30");
           }};

Вы можете сделать это двумя способами:

1. Map<K, V>.forEach() ожидает BiConsumer<? super K,? super V> в качестве аргумента, а сигнатура абстрактного метода BiConsumer<T, U> - accept(T t, U u).

map.forEach((keys,values) -> { String k = keys ;
                               String v= values;
                                //logic goes here
                              });

2. Map<K, V>.entrySet().forEach() ожидает Consumer<? super T> в качестве аргумента и сигнатура абстрактного метода Consumer<T>: accept(T t).

map.entrySet().forEach((entry) -> { String k = entry.getKey();
                                    String v= entry.getValue();
                                    //logic goes here
                                   });       
0 голосов
/ 19 февраля 2019

Использование

results.entrySet().forEach(entry -> {
     var key = entry.getKey();
     var value = entry.getValue();
//logic
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...