2D bir diziyi yazdırmanın en iyi yolunun ne olduğunu merak ediyordum. Bu sahip olduğum bazı kodlar ve sadece bunun iyi bir uygulama olup olmadığını merak ediyordum. Ayrıca bu kodda yaptığım diğer hataları bulursanız beni düzeltin. Teşekkürler!
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();
}
Basit bir şekilde yazdırabilirsiniz.
2D dizi yazdırmak için aşağıdakileri kullanın
int[][] array = new int[rows][columns];
System.out.println(Arrays.deepToString(array));
1D dizisini yazdırmak için aşağıdakileri kullanın
int[] array = new int[size];
System.out.println(Arrays.toString(array));
Sahip olduğunuz şeyde yanlış bir şey yok. Çift iç içe geçmiş for döngüleri, kodunuzu okuyan herkes tarafından kolayca sindirilmelidir.
Bununla birlikte, aşağıdaki formülasyon daha yoğun ve daha deyimseldir. En kısa zamanda Arrays ve Collections gibi bazı statik yardımcı sınıflara göz atmanızı öneririm. Verimli kullanımları sayesinde tonlarca ayrıntıdan kurtulabilirsiniz.
for (int[] row : array)
{
Arrays.fill(row, 0);
System.out.println(Arrays.toString(row));
}
Normal CS kurallarına göre (0,0)'ın sol üst köşede temsil edilmesini istiyorsanız @Ashika'nın cevabı harika bir şekilde çalışır. Bununla birlikte, normal matematiksel kuralları kullanmayı ve (0,0)'ı sol alt köşeye koymayı tercih ederseniz, bunu kullanabilirsiniz:
LinkedList<String> printList = new LinkedList<String>();
for (char[] row: array) {
printList.addFirst(Arrays.toString(row));;
}
while (!printList.isEmpty())
System.out.println(printList.removeFirst());
Bu, yazdırma zamanında sırayı tersine çevirmek için LIFO (Son Giren İlk Çıkar) kullandı.