HashMap<String, List<String[]>> извлечь List<String[]>

224
22 июля 2017, 05:44

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

private List<String[]> getDataFromParam(Report params) {    
    List<String[]> list = new ArrayList<String[]>();;
    Map<String, List<String[]>> map = new HashMap<String, List<String[]>>(params.getOutFilesData()); // здесь приходят данные в виде Map<String, List<String[]>
    list.add(map.values());
    return list;
}

так не работает.

Answer 1
private List<String[]> getDataFromParam(Report params) {    
    List<String[]> list = new ArrayList<String[]>();;
    Map<String, List<String[]>> map = new HashMap<String, List<String[]>>(params.getOutFilesData()); // здесь приходят данные в виде Map<String, List<String[]>
    //list.add(map.values()); add и addAll не поддерживается для возвращаемого типа Collection<V>
    // но можно пройти итератором по содержимому и добавить всё в list
    Iterator<List<String[]>> it = map.values().iterator();
    while(it.hasNext()) {
        List<String[]> data = it.next();
        list.addAll(data);
    }
   return list;
}
Answer 2

map.values() вернет коллекцию значение, а так как значения - это списки массивов строк, то будет получена коллекция списков массивов строк.

Из нее нужно получить обычный список массивов строк, для этого можно воспользоваться Stream Api и методом flatMap

List<String[]> list = map.values()
    .stream()
    .flatMap(List::stream) // на выходе Stream<String[]>
    .collect(Collectors.toList()); // собираем Stream в список.
READ ALSO
Помогите найти список api методов в openfire? [требует правки]

Помогите найти список api методов в openfire? [требует правки]

Где найти список api методов для openfire? Если у вас есть ссылка дайте пожалуйста ссылку

216
Как удалить беседу (delete conversation) через Telegram API BOT

Как удалить беседу (delete conversation) через Telegram API BOT

В приложение Telegram есть кнопка Delete conversationВ TELEGRAM API есть возможность удалить беседу?

299
В IE9 некорректно отображается градиент

В IE9 некорректно отображается градиент

В IE9 некорректно отображается градиент

280
Скрытый выдвижной текст

Скрытый выдвижной текст

http://intellect-mediabiz/seo-prodvizhenie/ - мой

293