代码之家  ›  专栏  ›  技术社区  ›  Rusty Shackleford

将List<List<String>>转换为String[][[关闭]

  •  -3
  • Rusty Shackleford  · 技术社区  · 3 年前

    List<List<String>> String[][] ?

    我对所提供的解决方案进行了研究 here

    任何帮助都将不胜感激。

    1 回复  |  直到 3 年前
        1
  •  3
  •   Zabuzard Louis-Philippe Lebouthillier    3 年前

    你不能只是申请 outer.toArray(...) List<String>[] .

    必须先转换所有内部列表,然后才能将它们收集到生成的数据结构中。没有实用的方法可以自动为您做到这一点,但它是相当容易做到自己。

    新一代推送接口

    溪流是一个很好的选择。只需流式处理外部列表,转换内部列表,然后使用 toArray 由提供 Stream

    String[][] result = outer.stream()              // Stream<List<String>>
        .map(inner -> inner.toArray(String[]::new)) // Stream<String[]>
        .toArray(String[][]::new);
    

    您也可以遵循完全相同的想法,使用更传统的手动方法设置目标外部数组,循环内部列表,转换它们并将它们收集到数组中。

    String[][] result = new String[outer.size()];
    int i = 0;
    for (List<String> inner : outer) {
        result[i] = inner.toArray(String[]::new);
        i++;
    }