2Dの配列を印刷するには、どのような方法が良いのかと考えていました。これは私が持っているコードですが、これが良い方法なのかどうかを考えていました。また、このコードの中で私が犯した間違いを見つけたら、それを訂正してください。ありがとうございました。
int rows = 5;
int columns = 3;
int[][] array = new int[rows][columns];
for(int i = 0; i<rows; i++)
for(int j = 0; j<columns; j++)
array[i][j] = 0;
for(int i = 0; i<rows; i++)
{
for(int j = 0; j<columns; j++)
{
System.out.print(array[i][j]);
}
System.out.println();
}
あなたが持っているものには何の問題もありません。二重にネストされたforループは、あなたのコードを読む人には簡単に理解できるはずです。
とはいえ、次のような定式化の方がより密度が高く、よりイディオム的なJAVAです。私は、ArraysやCollectionsのような静的なユーティリティークラスのいくつかを早急に調べることをお勧めします。これらのクラスを効率的に使うことで、膨大な量の定型文を削ることができます。
for (int[] row : array)
{
Arrays.fill(row, 0);
System.out.println(Arrays.toString(row));
}
Ashika'さんの回答は、(0,0)を通常のCSの慣習に従って左上に表現したい場合には、素晴らしい効果を発揮します。 しかし、通常の数学的な慣習を用いて(0,0)を左下に配置したい場合は、次のようにします。
LinkedList<String> printList = new LinkedList<String>();
for (char[] row: array) {
printList.addFirst(Arrays.toString(row));;
}
while (!printList.isEmpty())
System.out.println(printList.removeFirst());
これはLIFO(Last In First Out)を使用して、印刷時に順序を逆にしています。