3D Diziler ve Ötesi
Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 7 / 59.
Tıpkı 2D diziler (dizilerin dizileri) oluşturabildiğiniz gibi, 3D diziler (dizilerin dizilerinin dizileri), 4D diziler ve benzerlerini de oluşturabilirsiniz. Bunlara çok boyutlu diziler denir.
3D bir dizi, birbirinin üzerine yığılmış 2D dizilerin bir koleksiyonu olarak görselleştirilebilir ve küp benzeri bir yapı oluşturur. 3D dizideki her eleman, üç indeks kullanılarak erişilir: derinlik (hangi 2D dizi) için biri, satır için biri ve sütun için biri.
Java'da bir 3D diziyi tanımlama ve başlatma şu şekildedir:
data_type[][][] array_name = new data_type[depth][rows][columns];data_type: Dizinin tutacağı öğelerin türü.array_name: Dizinin adı.
depth: 2D dizilerin sayısı (derinlik).rows: Her 2D dizideki satır sayısı.columns: Her 2D dizideki sütun sayısı.
Örneğin, 2x3x4 boyutlarında bir 3D tamsayı dizisi oluşturmak için şu şekilde yazarsınız:
int[][][] cube = new int[2][3][4];Ayrıca bir 3D diziyi doğrudan ilklendirebilirsiniz:
int[][][] cube = {
{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
},
{
{13, 14, 15, 16},
{17, 18, 19, 20},
{21, 22, 23, 24}
}
};Görev
KolayÜç tamsayı argümanı alan bir program yazın: depth, rows ve cols. Belirtilen boyutlarda tamsayı içeren bir 3D dizi oluşturmalı ve dizinin her elemanını derinlik, satır ve sütun indekslerinin çarpımı (1'den başlayarak) ile başlatmalı.
Örneğin, [d][r][c] konumundaki eleman (d + 1) * (r + 1) * (c + 1) değerine sahip olmalıdır.
Son olarak, iç içe döngüler kullanarak elde edilen 3D diziyi konsola yazdırın. Çıktı şu şekilde görünmelidir:
Depth 0:
1 2 3 4
2 4 6 8
3 6 9 12
Depth 1:
2 4 6 8
4 8 12 16
6 12 18 24Kopya kağıdı
3D diziler, dizilerin dizilerinin dizileridir ve derinlik, satırlar ve sütunlar içeren küp benzeri yapılar olarak görselleştirilir.
Tanımlama ve başlatma:
data_type[][][] array_name = new data_type[depth][rows][columns];Örnek:
int[][][] cube = new int[2][3][4];Doğrudan başlatma:
int[][][] cube = {
{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
},
{
{13, 14, 15, 16},
{17, 18, 19, 20},
{21, 22, 23, 24}
}
};Elemanlar üç indeks kullanılarak erişilir: array[depth][row][column]
Kendin dene
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int depth = scanner.nextInt();
int rows = scanner.nextInt();
int cols = scanner.nextInt();
int[][][] array3D = new int[depth][rows][cols];
// Kodunuzu buraya yazın
// 3D diziyi yazdır
for (int d = 0; d < depth; d++) {
System.out.println("Depth " + d + ":");
for (int r = 0; r < rows; r++) {
for (int c = 0; c < cols; c++) {
System.out.print(array3D[d][r][c] + " ");
}
System.out.println();
}
}
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Çok Boyutlu Diziler
2D Diziler Temelleri2D Dizi Elemanlarına Erişim2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaJagged Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey2HashMap Bölüm 1
HashMap Nedir?HashMap TanımlamaDeğerlere ErişimAnahtarın Varlığını Kontrol EtmeSözlükleri DeğiştirmeÖzet - HashMap3HashMap Bölüm 2
HashMap YöntemlerikeySet() ile YinelemeentrySet() ile Yinelemeİç İçe HashMapÖzet - Depo YönetimiÖzet - HashMap İşlemleri6İleri Akış Kontrolü
Etiketli İfadelerSwitch İfadesiDesen EşleştirmeKoruyucu Yan CümlelerÖzet - Akış Kontrolü9Proje - Benzersiz Kelime Sayacı
Metin Girişi ve DepolamaKelime İşleme