从Textfile到ArrayList

时间:2018-06-11 14:58:12

标签: java arrays parsing matrix arraylist

我目前正在尝试将文本文件中的内容解析为Java中的List。但基本上我很困惑,因为它不像我期望的那样工作。

代码:

if (charArray[i] == 'R') {
   ArrayList<Integer> C = new ArrayList<Integer>();
   ArrayList<Integer> T = new ArrayList<Integer>();
             for(int q = 0; q < input.geta()*6; q++) {
                 q++;
                 C.add((int) charArray[q+1]-48);
             }

   ArrayList<ArrayList<Integer>> C_C = new ArrayList<ArrayList<Integer>>();
   C_C.clear();
   int element = -1;
   for(int t = 0; t < C.size(); t++) {
       element++;
       if(element == input.geta()) {
          element = 0;
          System.out.println("add " + (ArrayList<Integer>) T);
          C_C.add((ArrayList<Integer>) T);
          T.clear();
        }
        T.add(C.get(t));
    }
    System.out.println("add " + (ArrayList<Integer>) T);
    C_C.add((ArrayList<Integer>) T);
    System.out.println("is " + C_C);
    input.setR(C_C);  
}

输出:

add [2, 0, 0, 1]
add [1, 0, 1, 0]
add [2, 1, 0, 0] 
is [[2, 1, 0, 0], [2, 1, 0, 0], [2, 1, 0, 0]]

我的文本文件包含:R=2,0,0,1,1,0,1,0,2,1,0,0
input.geta()是4

我的3x4矩阵应如下所示:
2 0 0 1
1 0 1 0
2 1 0 0

1 个答案:

答案 0 :(得分:1)

你一直在操纵同一个ArrayList

相反,您需要每次都创建一个新的ArrayList并将其放入C_C

C_C.add(new ArrayList<>(T));