Java 转换列表<;列表<;字符串>&燃气轮机;输入字符串[][]

Java 转换列表<;列表<;字符串>&燃气轮机;输入字符串[][],java,arrays,list,type-conversion,nested-lists,Java,Arrays,List,Type Conversion,Nested Lists,如何将列表转换为字符串[] 我已经尝试过提供的解决方案,但运气不太好 任何帮助都将不胜感激。解释 您不能只应用outer.toArray(…),因为这将为您提供一个列表数组,List[] 您必须首先转换所有内部列表,然后才能将它们收集到生成的数据结构中。没有实用的方法可以为您自动完成这项工作,但您自己完成这项工作相当容易 新一代推送接口 Streams是这方面的一个很好的候选者。只需流式处理外部列表,转换内部列表,然后使用stream提供的toArray String[][] result =

如何将
列表
转换为
字符串[]

我已经尝试过提供的解决方案,但运气不太好

任何帮助都将不胜感激。

解释 您不能只应用
outer.toArray(…)
,因为这将为您提供一个列表数组,
List[]

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

新一代推送接口 Streams是这方面的一个很好的候选者。只需流式处理外部列表,转换内部列表,然后使用
stream
提供的
toArray

String[][] result = outer.stream()              // Stream<List<String>>
    .map(inner -> inner.toArray(String[]::new)) // Stream<String[]>
    .toArray(String[][]::new);
String[]result=outer.stream()//stream
.map(内部->内部.toArray(字符串[]::new))//流
.toArray(字符串[]:[]::新建);
传统回路 您也可以遵循完全相同的想法,使用更传统的手动方法设置目标外部阵列,循环内部列表,转换它们并将它们收集到阵列中

String[][] result = new String[outer.size()];
int i = 0;
for (List<String> inner : outer) {
    result[i] = inner.toArray(String[]::new);
    i++;
}
String[][]结果=新字符串[outer.size()];
int i=0;
用于(列表内部:外部){
结果[i]=internal.toArray(字符串[]::new);
i++;
}

您的答案在代码中看起来不错,但“您必须先转换内部列表,然后再转换外部列表”的说法可能会误导经验不足的用户。在这两种情况下,您的外部循环首先迭代外部集合,然后迭代每个外部集合成员的内部集合。很乐意编辑,但不确定除了最初的摸索尝试之外,还可以添加什么。同样,为什么下面链接中的问题是开放的,当它是一个非常类似的问题(在结构方面)它仍然开放的原因是因为它是关于这个问题的第一个问题,通常被问到的问题。单独来看,问题也很严重(没有细节,没有尝试,…)。为了丰富SOs Q&A知识库,通常会接受常见问题的第一个问题(特别是如果有好的答案)。也就是说,我猜投票被否决和结束的主要原因是因为你没有展示你的尝试,也没有解释它们到底出了什么问题或你不清楚。你确实展示了一个研究尝试,但你没有解释为什么它没有解决你的问题。好吧,这很公平,我会记住这一点,继续前进-无论如何谢谢你的回答欢迎你。我认为这个问题很有潜力,它肯定是一个经常被搜索的话题。如果你能找到它,并提供所有细节,让它成为一个高质量的问题,我相信人们会乐意重新打开它,放弃投票。