Разбор матрицы из текстового файла в ArrayList - PullRequest
0 голосов
/ 11 июня 2018

В настоящее время я пытаюсь проанализировать содержимое из текстового файла в список на Java.Но в основном я запутался, потому что это не работает так, как я ожидал.

Код:

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,0input.geta () равно 4

Моя матрица 3x4 должна выглядеть следующим образом:2 0 0 11 0 1 02 1 0 0

1 Ответ

0 голосов
/ 11 июня 2018

Вы все время манипулируете одним и тем же ArrayList.

Вместо этого вам нужно каждый раз создавать новый ArrayList и помещать его в C_C:

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