我想将此final List <List<Object>> datavalues = new ArrayList<>();
转换为二维字符串数组,如String[][]
。
答案 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中,您必须使用循环。