他の人が言ったように、最良のオプションは a を使用してファイルを読み取ることですが、読み取りが完了した後List<List<Integer>>
に an に戻す必要はないと思います。int[][]
内部的ArrayList
にはすでに配列を使用しており (名前の由来)、コンパイラはlist.get(i).get(j)
単にarr[i][j]
に変換する可能性が高いため、パフォーマンスの低下はありません。スペースのパフォーマンスが気になる場合はtrimToSize()
、作成後に を使用してリストをトリミングできます。
一方で、A[i][j]
その後は書いた方がいいA.get(i).get(j)
ので、それはあなた次第です。ファイルから要素を取得する方法がわからないので、疑似疑似コードをいくつか書きます。
List<List<Integer>> mat = new ArrayList<List<Integer>>();
for line in file{
row = new ArrayList<Integer>();
mat.add(row);
for element in line
row.add(element);
row.trimToSize();
}
mat.trimToSize()
//If you really want to convert, and is sure that all rows have the same size...
int[][] A = new int[mat.size()][];
int i=0;
for (List<Integer> row : mat){
A[i++] = row.toArray(A[i]);
}