如何将List <list <string >>转换为Object [] []

时间:2018-07-19 08:47:28

标签: java arrays list collections

我有一个构建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>>吗?

2 个答案:

答案 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