List <List <Object >> to String [] []. Есть ли способ?

java arraylist

83 просмотра

1 ответ

Я хочу преобразовать это final List <List<Object>> datavalues = new ArrayList<>();в 2D-массив строк, как это String[][].

Автор: Jae Jarabe Источник Размещён: 08.11.2019 11:13

Ответы (1)


5 плюса

Решение

В Java 8 вы можете сделать

List<List<Object>> values = ...
String[][] valArr = values.stream()
                          .map(l -> l.stream()
                                     .map(e -> e.toString())
                                     .toArray(n -> new String[n]))
                          .toArray(n -> new String[n][]);

Как указывает @bohemian, вы можете использовать другие лямбда-формы с

String[][] valArr = values.stream()
                          .map(l -> l.stream()
                                     .map(Object::toString)
                                     .toArray(String[]::new))
                          .toArray(String[][]::new);

Проблема, с которой я сталкиваюсь с ::формами, заключается в том, что они могут быть круче, но неясны в отношении того, что они делают.

В Java 7 вы должны использовать циклы.

Автор: Peter Lawrey Размещён: 20.08.2016 11:30
Вопросы из категории :
32x32