列表<列表<对象>&GT; to String [] []。有什么方法吗?

时间:2016-08-20 11:16:12

标签: java arraylist

我想将此final List <List<Object>> datavalues = new ArrayList<>();转换为二维字符串数组,如String[][]

1 个答案:

答案 0 :(得分: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指出的那样,你可以使用其他lambda形式

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

我对::形式的问题是它们可以更酷但是更加模糊不清。

在Java 7中,您必须使用循环。