Помогите разобраться плиз.
Есть мапа Map: {params={par1=1, par2=name}}, значение тоже подразумевает тип Map.
Как можно при помощи stream конвертировать значение данной мапы в новую мапу, чтобы получилось {par1=1, par2=name} ?
попытался сделать что-то такое
Map<String, Object> parameters = params.entrySet().stream()
.filter(k -> k.getKey().equals("params"))
.collect(Collectors.toMap(Map.Entry::getKey, v -> v.getValue()));
Но все равно итог такой получаю {params={par1=1, par2=name}}
Пробовал продолжать, вызывая снова stream и добавляя map(String::split) например, не получается, в итоге не работает
Следите за тем, что находится в вашем стриме. После filter
у вас всё ещё стрим, состоящий из Map.Entry
исходного Map
'а. Чтобы перейти к стриму из элементов вложенного Map
'а, нужно его извлечь:
Map<String, Object> parameters = params.entrySet().stream()
// Сейчас в стриме [Map.Entry(key=params, value={par1=1, par2=name})]
.filter(k -> k.getKey().equals("params"))
// В стриме всё ещё [Map.Entry(key=params, value={par1=1, par2=name})]
.map(Map.Entry::getValue)
// Сейчас в стриме [Map {par1=1, par2=name}]
.flatMap(m -> m.entrySet().stream())
// А теперь стриме [Map.Entry(key=par1, value=1}), Map.Entry(key=par2, value=name)]
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
Только совершенно непонятно, зачем делаь всё это через стримы. Если вы знаете, что значения исходного Map
'а - это Map
'ы, и вы точно знаете, что вам нужен Map
, лежащий под ключом "params"
, то почему бы просто его не достать?
Map<String, Object> parameters = params.get("params");
Если исходный Map
имеет тип Map<String, Object>
, но вы точно знаете, что значения - это тоже Map
- просто сделайте явное приведение типов.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
По сути у меня есть метод, который считывает слова из файла и записывает в массивПример текстового файла:
Имеется 2 обычных функции , f1() и f2()Вторая должна выполнится после окончания выполнения первой
Шторм не видит мою библиотеку, как я не пытался ее подключить глобальноТе библиотека по факту доступна на данной странице в глобальной области...
Проблема с яндекс share, добавляю vkontakte, facebook, twitter, при hover у кнопки vkontakte атрибут "vkontakte" клиент хочет при hover title 'VK'