2016-06-01 8 views
-3

У меня есть List<HashMap<String,String>>, и я хочу преобразовать его в List<Map<String,String>> в java. Может ли кто-нибудь помочь мне в этом? Thanksconvert Список <HashMap <String, String >> в список <map <String, String >> java

+0

Хм. В большинстве случаев кажется, что они достаточно совместимы. Где именно вам это нужно? Пожалуйста, покажите код. – Thilo

+0

что побуждает вас так думать? ИМХО, почти все, что вы можете достичь, с помощью HashMap, который вы можете сделать с помощью Карты. – Rockstar

+0

Это что-то вроде этого. У меня есть другой метод, который возвращает List >. И после вызова, что мне нужно назначить это в какой-то другой глобальной переменной, которая является List >. К сожалению, я не могу изменить возвращаемый тип этого метода или типа этой общедоступной переменной. Вот почему мне нужно это преобразование. –

ответ

0

Ничего, кроме того, что вы должны создать новый список Карта. Затем перечислите список HashMap и просто добавьте каждый объект в список Map. Пример:

List<HashMap<String, String>> hashMapList = new LinkedList<HashMap<String, String>>(); 
HashMap<String, String> hashMap = new HashMap<String, String>(); 
hashMap.put("Ussain", "Bolt"); 
hashMapList.add(hashMap); 

List<Map<String, String>> mapList = new LinkedList<Map<String, String>>(); 
for (HashMap<String, String> map : hashMapList) { 
    mapList.add(map); 
} 

Надеюсь, что это решит вашу проблему.

1

Это проще, чем вы думали.

Во-первых, создать List<Map<String, String>>:

List<Map<String, String>> result = new List<>(); 

Затем, просто проходное исходного списка и добавить каждый элемент в новом списке:

// This for loop basically says "for each item in yourOriginalList..." 
// if you didn't know 
for (HashMap<String, String> item : yourOriginalList) { 
    result.add(item); 
} 

«Почему я могу добавить HashMap к список Map s? " вы можете спросить.

Это из-за полиморфизм. Поскольку Map - это интерфейс, а HashMap реализует Map, где вам нужно Map, вы можете дать ему HashMap, если аргументы общего типа одинаковы.

+0

Кроме того, кажется, слишком сложно копировать список вообще , Не может ли он быть брошен (хотя он вообще небезопасен)? – Thilo

+0

Я тестировал кастинг и конструктор копирования с компилятором Java7, и оба они не компилировались. Может быть, он может быть скомпилирован в Java 8? @Thilo – Sweeper

+0

Думаю, вам нужно использовать небезопасный листинг ('list = (List) originalList'). И да, будет предупреждение об этом. – Thilo

Смежные вопросы