Как я могу преобразовать 'Collection <Map <String, String >>' в 'Map <String, String>'? - PullRequest
0 голосов
/ 06 марта 2019

Я хочу конвертировать из Collection<Map<String,String>> в Map<String,String>.

Когда я пытался сделать это,

Map<String,String> m = (Map<String,String>)map.values(); 

, где, карта типа Map<String,Map<String,String>>

Я получаю

java.lang.ClassCastException: java.util.TreeMap $ Значения нельзя преобразовать в java.util.Map

Что он пытается сказать? Я не могу получить его и как мне правильно конвертировать из Collection<Map<String,String>> в Map<String,String>?

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Пока это коллекция, вы должны думать, что это коллекция объектов.Затем выполните итерацию, для каждого объекта вы должны поместить его в карту

 public Map<String, String> getMapsFromArrayOfMaps( Collection<Map<String,String>> maps ) {
    Map<String, String> result = new HashMap<>();      
    maps.forEach(map->result.putAll(map));        
    return result ;

}
0 голосов
/ 06 марта 2019

Вы можете использовать этот небольшой фрагмент, чтобы поместить все значения в одну карту:

Map<String, String> result = new TreeMap<>();
for(Map<String, String> value : map.values()) {
    result.putAll(value);
}

Хотя это просто перезапишет дубликаты ключей новым значением, если они есть.

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