在Java中如何将二维数组转换为一维数组
我想知道如何将二维数组转换为一维数组。我已经想出了一些代码,但它似乎并不完全有效。有人能帮我吗?谢谢
public class TESTER1 {
/**
* @param args
*/
static String[][] data = new String[][] {{"Dum","Dumer","Dumbest"}};
public static void main(String[] args) {
convertData(data);
}
public static void convertData(String[][]data) {
String[] toReturn = new String[data.length];
for(int i = 0;i<data.length;i++) {
for(int j = 0;j<3;j++){
toReturn[i] = data[i][j];
}
}
for(String s:toReturn) {
System.out.println(s);
}
}
}
[编辑]非常感谢。是否可以将字符串[]中的每一行转换为 字符串[]中的索引例如,如果我们转换字符串[][](上面的代码),那么 我打印出数组[0]它应该打印出dum,dummer,dumbest[edit]
# 1 楼答案
更简洁的版本:
# 2 楼答案
在Java8中,通过流API,扁平化确实变得容易得多。该函数可以表示为:
# 3 楼答案
或一次添加整行:
编辑: 从我对答案的评论来看,这似乎是OP想要的(即,将2d数组的每一行转换为它的某些字符串表示形式):
# 4 楼答案
一维数组的长度必须是二维数组中所有行的长度之和。当然,Java没有真正的“2维数组”。这段代码可以正常工作,并封装在一个简单的演示程序中
公共类数组平台{
}