Какой тип возврата Collectors.groupingBy (...)? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть MultiValueMap<String, String> и, скажем, я хочу сгруппировать его по длине ключа.

MultiValueMap<String, String> map = // Some defined MultiValueMap ... 

map.entrySet().stream().collect(Collectors.groupingBy(x -> {
    return x.getKey().length();
}));

Проблема в том, что я не могу понять тип return приведенного выше оператора,Я пробовал, например,

Map<String, Set<Map.Entry<String, List<String>>>> groupped = map.entrySet().stream().collect(Collectors.groupingBy(x -> {
    return x.getKey().length();
}));

Но тогда я получу x.getKey() не может быть решена.

1 Ответ

0 голосов
/ 10 декабря 2018

должно возвращаться Map<Integer, List<Map.Entry<String, String>>> вместо Map<String, Set<Map.Entry<String, List<String>>>>.

обратите внимание на клавишу String и значения Set<...>, которые вы включили выше, это должны быть клавиши Integer и List<...> в качестве значений этой перегрузки groupingBy, которую вы используете, возвращает:

Map<K, List<T>>, ключи которого являются значениями, полученными в результате применения функции классификации к входуэлементы, и соответствующие значения которых являются списками, содержащими входные элементы, которые отображаются на связанный ключ в функции классификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...