java - 如何将 List<List<String[]>> 转换为 String[][][]?

标签 java arrays string multidimensional-array

这是我的代码:

    List<List<String[]>> myBigList=new ArrayList<List<String[]>>();
    String[] s11={"A","30"};
    String[] s12={"B","20"};
    List<String[]> l1=new ArrayList<String[]>();
    l1.add(s11);
    l1.add(s12);

    String[] s21={"B","10"};
    String[] s22={"B","20"};
    List<String[]> l2=new ArrayList<String[]>();
    l2.add(s21);
    l2.add(s22);

    String[] s31={"C","2"};
    String[] s32={"A","10"};
    String[] s33={"A","3"};
    List<String[]> l3=new ArrayList<String[]>();
    l3.add(s31);
    l3.add(s32);
    l3.add(s33);

    myBigList.add(l1);
    myBigList.add(l2); 
    myBigList.add(l3);

    String[][] test2DArr=new String[2][myBigList.size()];
myBigList.toArray(test2DArr);

运行时显示“[错误] - 未捕获的异常转义” 那么如何将List>转换为String[][]呢?

最佳答案

假设(这并不容易......)任何人都会遇到类似的问题,转换的工作解决方案 List<List<String[]>>String[][][]将是:

// List<List<String[]>> myBigList = new ArrayList<List<String[]>>();
String[][][] amyBigArray = new String[myBigList.size()][][];
for (int i = 0; i < myBigList.size(); i++) {
    int innerSize = myBigList.get(i).size();
    String[][] innerArray = new String[innerSize][];
    for (int j = 0; j < innerSize; j++) {
        innerArray[j] = myBigList.get(i).get(j);
    }
    amyBigArray[i] = innerArray;
}

可以打印:

for (String[][] strings : amyBigArray) {
    for (String[] strings3 : strings) {
        System.out.println(Arrays.toString(strings3));
    }
}

它为给定的问题输入提供了正确的输出:

[A, 30]
[B, 20]
[B, 10]
[B, 20]
[C, 2]
[A, 10]
[A, 3]

关于java - 如何将 List<List<String[]>> 转换为 String[][][]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15732603/

相关文章:

c - 另一个数组中的安全用户输入(任何类型)

javascript - 如何编辑对象数组?

javascript - jQuery 检查数组中字母是否可用

连接字符串的 PHP 函数?

java - Java 中私有(private)静态嵌套类中的访问修饰符

java - 在实现可运行 java 的类中添加延迟

java - DatagramSocket.receive() 和 SocketException

java - Android Emulator 插件在 Jenkins 中不起作用

c - 解析二维字符数组

javascript - 如何转义存储颜色名称的 Less 变量中的引号?