我有一个构建List<List<String>>
对象的方法。我需要将此列表转换为类型Object[][]
并返回它。当我将Object[]
添加到列表中时,所有数组元素都作为单个对象添加。
List<Object[]> list = new ArrayList<Object[]>();
list.add(new Object[2]{"A", "B"});
return list.toArray();
在上面的示例中,return list.toArray()
返回Object[]
而不是Object[][]
,尽管它被声明为List<Object[]>
;
请帮助从Object[][]
获取List<List<String>>
吗?
答案 0 :(得分:6)
最简单的方法可能是流式传输列表,并单独处理子列表:
List<List<String>> list = /* something */
Object[][] result =
list.stream()
.map(List::toArray)
.toArray(Object[][]::new);
答案 1 :(得分:2)
只需指定要将其转换为的数组类型。
List<Object[]> list = new ArrayList<Object[]>();
list.add(new Object[] { "A", "B" });
list.add(new Object[] { "C", "D" });
Object[][] o = list.toArray(new Object[][] {});
for (Object[] o1 : o) {
for (Object o2 : o1) {
System.out.print(o2 + " ");
}
System.out.println();
}
此代码输出为:
A B
C D