繁体   English   中英

如何转换清单 <List<String> &gt;转到对象[] []

[英]How to convert a List<List<String>> to Object[][]

我有一个构建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[]>

请帮助从List<List<String>>获得Object[][]吗?

最简单的方法可能是流式处理列表,并单独处理子列表:

List<List<String>> list = /* something */
Object[][] result = 
    list.stream()
        .map(List::toArray)
        .toArray(Object[][]::new);

只需指定要将其转换为的数组类型。

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 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM