multidimensional arrays java 2d
Java'da Çok Boyutlu Dizilerle İlgili Bu Öğretici, Sözdizimi ve Kod Örnekleriyle Java'da 2d ve 3d Dizilerin Nasıl Başlatılacağını, Erişileceğini ve Yazdırılacağını Açıklar:
Şimdiye kadar tek boyutlu dizilerle ilgili temel kavramları tartıştık. Bu diziler, aynı veri türündeki tek bir dizi veya öğe listesini saklar.
Java ayrıca birden fazla boyutlu dizileri de destekler ve bunlara Çok Boyutlu diziler denir.
=> TÜM Java Öğreticilerini Buradan Kontrol Edin.
Java çok boyutlu dizileri bir dizi dizisi olarak düzenlenir, yani çok boyutlu bir dizinin her bir öğesi başka bir dizidir. Elemanların temsili satırlar ve sütunlar halindedir. Böylece, satır boyutunu sütun boyutuyla çarparak çok boyutlu bir dizide toplam öğe sayısı elde edebilirsiniz.
Yani, iki boyutlu bir 3 × 4 diziniz varsa, bu dizideki toplam eleman sayısı = 3 × 4 = 12.
Bu eğitimde, Java'daki çok boyutlu dizileri inceleyeceğiz. Üç veya daha fazla boyutlu dizilere geçmeden önce ilk olarak iki boyutlu dizileri tartışalım.
Ne öğreneceksin:
İki Boyutlu Dizi
Çok boyutlu dizinin en basiti iki boyutlu bir dizidir. 2D dizilerin basit bir tanımı şöyledir: 2D dizi, tek boyutlu dizilerden oluşan bir dizidir.
Java'da, iki boyutlu bir dizi, satırlar ve sütunlar biçiminde saklanır ve bir matris biçiminde temsil edilir.
İki boyutlu bir dizinin genel bildirimi,
data_type () () array_name;
Buraya,
data_type = bir dizide depolanacak elemanların veri türü.
dizi_adı = iki boyutlu dizinin adı.
Yeniyi kullanarak aşağıdaki gibi bir 2D dizi oluşturabilirsiniz:
data_type () () array_name = new data_type(row_size)(column_size);
Buraya,
row_size = bir dizinin içereceği satır sayısı.
column_size = dizinin içereceği sütun sayısı.
Yani 3x3'lük bir diziniz varsa, bu onun 3 satır ve 3 sütun olacağı anlamına gelir.
Bu dizinin düzeni aşağıda gösterildiği gibi olacaktır.
Satırlar / Sütunlar | Sütun1 | Sütun2 | Sütun3 |
---|---|---|---|
Satır1 | (0,0) | (0.1) | (0.2) |
Satır2 | (1.0) | (1,1) | (1,2) |
Satır3 | (2.0) | (2.1) | (2.2) |
Yukarıda gösterildiği gibi, satır ve sütunun her kesişimi 2D dizinin bir öğesini depolar. Dolayısıyla, 2d dizisindeki ilk elemana erişmek istiyorsanız, (0, 0) ile verilir.
Not dizi boyutu 3 × 3 olduğundan, bu dizide 9 öğeye sahip olabilirsiniz.
Aşağıdaki gibi 3 satır ve 2 sütundan oluşan 'myarray' adlı bir tamsayı dizisi bildirilebilir.
int ()() myarray = new int(3)(2);
Dizi bildirilip yaratıldıktan sonra, onu değerlerle başlatma zamanıdır.
2d Dizisini Başlat
2d dizisini değerlerle başlatmanın çeşitli yolları vardır. İlk yöntem, her bir öğeye değer atamanın geleneksel yöntemidir.
Başlatma için genel sözdizimi şöyledir:
array_name(row_index)(column_index) = value;
Misal:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Yukarıdaki ifadeler, verilen 2d dizisinin tüm elemanlarını başlatır.
Bir programa koyalım ve çıktıyı kontrol edelim.
public class Main { public static void main(String() args) { int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1; System.out.println('Array elements are:'); System.out.println(myarray(0)(0) + ' ' +myarray(0)(1)); System.out.println(myarray(1)(0) + ' ' +myarray(1)(1)); } }
Çıktı:
Bu yöntem, ilgili boyutlar daha küçük olduğunda yararlı olabilir. Dizi boyutu büyüdükçe, öğeleri ayrı ayrı başlatmak için bu yöntemi kullanmak zordur.
Java'da 2d dizisini başlatmanın bir sonraki yöntemi, diziyi yalnızca bildirim sırasında başlatmaktır.
Bu başlatma yöntemi için genel sözdizimi aşağıda verilmiştir:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
Örneğin, int türünde 2 × 3 bir diziniz varsa, o zaman aşağıdaki gibi bir bildirimle başlatabilirsiniz:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
Aşağıdaki örnek, başlatma ile 2d dizi bildirimini gösterir.
public class Main { public static void main(String() args) { //2-d array initialised with values int()() intArray = { { 1, 2 }, { 3, 4 },{5,6}}; //print the array System.out.println('Initialized Two dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { System.out.print(intArray (i)(j) + ' '); } System.out.println(); } } }
Çıktı:
Yukarıdaki programda dizi, bildirimin kendisi sırasında başlatılır ve ardından değerler görüntülenir.
Ayrıca aşağıda gösterildiği gibi bir döngü kullanarak değerleri 2d dizisine başlatabilir veya atayabilirsiniz.
int()() intArray = new int(3)(3); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; } }
Aşağıdaki program yukarıdaki kodu uygular.
public class Main { public static void main(String() args) { //declare an array of int int()() intArray = new int(3)(3); System.out.println('Array elements are:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; //assign values to each array element System.out.print(intArray(i)(j) + ' '); //print each element } System.out.println(); } } }
Çıktı:
Yukarıdaki 2d dizisindeki her öğeye bir 'i + 1' değeri atanır. Bu, dizinin bir satırındaki her öğenin aynı değeri içermesini sağlar.
2d Dizisine Erişim ve Yazdırma
2d dizisini başlatırken, dizinin tek tek öğelerini bir değere başlatabileceğinizi zaten biliyorsunuz. Bu, belirli bir öğeye erişmek için dizinin satır dizini ve sütun dizini kullanılarak yapılır.
Başlatma işlemine benzer şekilde, tek tek öğenin değerine erişebilir ve bunu kullanıcıya yazdırabilirsiniz.
Dizi öğesine erişim için genel sözdizimi şöyledir:
ikili arama ağacı uygulaması c ++
data_typeval = array_name(row_index)(column_index);
Burada dizi_adı, elemanına erişilen dizidir ve veri_türü, dizinin veri türü ile aynıdır.
Aşağıdaki program, tek bir öğeye nasıl erişildiğini ve yazdırıldığını gösterir.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = {{1,2},{4,8}}; //Access individual element of array intval = intArray(0)(1); //print the element System.out.println('Accessed array value = ' + val); System.out.println('Contents of Array:' ); //print individual elements of array System.out.println(intArray(0)(0) + ' ' + intArray(0)(1)); System.out.println(intArray(1)(0) + ' ' + intArray(1)(1)); } }
Çıktı:
Bu şekilde, kare (()) parantez içine alınmış satır ve sütun indekslerini kullanarak tek tek dizi öğelerine kolayca erişebilir ve bunları yazdırabilirsiniz.
Yukarıda gösterildiği gibi (matris formu da denir) for döngüsünü kullanarak tüm diziyi tek seferde tablo biçiminde yazdırabilirsiniz. Bu iki boyutlu bir dizi olduğundan, bunun için iki döngüye ihtiyacınız var. Satırları yinelemek için bir döngü, yani sütunları geçmek için dış döngü ve iç döngü.
Herhangi bir anda (mevcut yineleme), dizideki belirli öğe şu şekilde verilir:
dizi_adı (i) (j);
Burada 'i' geçerli satır ve 'j' geçerli sütundur.
Aşağıdaki program bir 2d dizisinin 'for' döngüsü kullanılarak yazdırılmasını göstermektedir.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i*j; //assign value to each array element System.out.print(intArray (i)(j) + ' '); } System.out.println(''); } } }
Çıktı:
Yukarıdaki programda, 2d dizisi başlatılır ve ardından öğeler iki for döngüsü kullanılarak yazdırılır. Dıştaki, satırları takip etmek için kullanılırken, iç for döngüsü sütunlar içindir.
Java 2d Dizi Uzunluğu
İki boyutlu bir dizi, tek boyutlu bir dizinin dizisi olarak tanımlanır. Bu nedenle, bir 2d dizisinin uzunluğuna ihtiyacınız olduğunda, bu tek boyutlu bir dizideki kadar basit değildir.
İki boyutlu bir dizinin length özelliği, dizideki satırların sayısını döndürür. Her satır tek boyutlu bir dizidir. İki boyutlu dizinin satır ve sütunlardan oluştuğunu zaten biliyorsunuz. Sütun boyutu her satır için değişebilir.
Bu nedenle, satır sayısı boyunca yineleyerek her satırın boyutunu elde edebilirsiniz.
Aşağıdaki program dizinin uzunluğunu (satır sayısı) ve her satırın boyutunu verir.
public class Main { public static void main(String() args) { //initialize 2-d array int()() myArray = { { 1, 2, 3 }, { 4, 5 } }; System.out.println('length of array:' + myArray.length); //number of rows for(int i=0;i Çıktı:
Yukarıda tanımlanan iki boyutlu bir dizinin iki satırı vardır. Her satır tek boyutlu bir dizidir. İlk 1B dizisi 3 öğeye (3 sütun) sahipken, ikinci satırda 2 öğe vardır.
Aşağıdaki Java programı, 2d dizisini yazdırmak için length özelliğinin kullanımını gösterir.
public class Main { public static void main(String() args) { //two dimensional array definition int()() myarray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i Çıktı:
Daha önce belirtildiği gibi, dış döngü satırları ve iç döngü sütunları temsil eder.
Not: Her iki döngüdeki sonlandırma koşulu, önce satırlar ve ardından sütunlar arasında yineleme yapmak için length özelliğini kullanır.
Java Çok Boyutlu Diziler
İki boyutlu dizileri daha önce gördük. Java, ikiden fazla boyuta sahip dizileri destekler.
Çok boyutlu bir dizinin genel sözdizimi aşağıdaki gibidir:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Buraya,
d1, d2… dn = çok boyutlu dizinin boyutları
(d1_size) (d2_size)… (dn_size) = boyutların ilgili boyutları
data_type = dizi elemanlarının veri türü
dizi_adı = çok boyutlu dizinin adı
2d diziden başka bir çok boyutlu diziye örnek olarak, üç boyutlu (3d) dizilerin ayrıntılarını tartışalım.
Java'da Üç Boyutlu Diziler
Boyutları arttıkça bir dizinin daha karmaşık hale geldiğini zaten tartışmıştık. Üç boyutlu diziler, çok boyutlu diziler için karmaşıktır. Üç boyutlu, iki boyutlu diziler dizisi olarak tanımlanabilir.
Üç boyutlu bir dizinin genel tanımı aşağıda verilmiştir:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Buraya,
d1, d2, d3 = boyutların boyutları
data_type = dizinin elemanlarının veri türü
array_name = 3d dizinin adı
3B dizi tanımı örneği:
int () () () intArray = new int(2)(3)(4);
Yukarıdaki 3d dizi tanımı, 2 tablo veya diziye, 3 satıra ve 2x3x4 = 24 öğeye kadar toplamda 4 sütuna sahip olarak yorumlanabilir.
Bu, 3 boyutlu bir dizide üç boyutun şu şekilde yorumlandığı anlamına gelir:
- Tablo / Dizi sayısı: İlk boyut, bir 3B dizinin kaç tablo veya diziye sahip olacağını gösterir.
- Satır sayısı: İkinci boyut, bir dizinin sahip olacağı toplam satır sayısını belirtir.
- Sütun sayısı: Üçüncü boyut, 3B dizideki toplam sütunları gösterir.
3B Diziyi Başlat
Bir 3 boyutlu diziyi başlatmak için kullanılan yaklaşımlar, İki boyutlu dizileri başlatmak için kullanılanlarla aynıdır.
Tek tek dizi öğelerine değerler atayarak diziyi başlatabilir veya bildirim sırasında diziyi başlatabilirsiniz.
Aşağıdaki örnek, bildirim sırasında 3 boyutlu dizinin başlatılmasını gösterir.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { { { 1, 2, 3}, { 4, 5, 6 } , { 7, 8, 9 } } }; System.out.println ('3-d array is given below :'); //print the elements of array for (int i = 0; i <1; i++) for (int j = 0; j < 3; j++) for (int z = 0; z < 3; z++) System.out.println ('intArray (' + i + ')(' + j + ')(' + z + ') = ' + intArray (i)(j)(z)); } }
Çıktı:
Tanımlama sırasında 3d diziyi başlattıktan sonra, dizinin tek tek elemanlarına eriştik ve onları yazdırdık.
3d Dizi Erişim ve Yazdırma
Yine, üç boyutlu bir dizideki dizi öğelerini yazdırmak ve bunlara erişmek, iki boyutlu dizilerdekine benzer.
Aşağıdaki program, dizi öğelerine erişmek ve bunları konsola yazdırmak için döngüleri kullanır.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() myArray = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 1, 4, 9 }, { 16, 25, 36 } }, { { 1, 8, 27 }, { 64, 125, 216 } } }; System.out.println('3x2x3 array is given below:'); //print the 3-d array for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { System.out.print(myArray(i)(j)(k) + ' '); } System.out.println(); } System.out.println(); } } }
Çıktı:
Yukarıdaki program, üç boyutlu bir dizinin bir tablo gösterimini gösterir. Gösterildiği gibi 3x2x3 bir dizidir, yani 3 tablo, 2 satır ve 3 sütun ve dolayısıyla 18 eleman içerir.
Çok boyutlu bir dizide sütun boyutunun değişebileceğinden daha önce bahsedilmişti. Aşağıdaki örnek, çeşitli sütun boyutlarına sahip üç boyutlu bir diziyi göstermektedir.
Bu program aynı zamanda dizide gezinmek ve öğelerini görüntülemek için geliştirilmiş for döngüsünü kullanır.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { {{10, 20, 30},{20, 40, 60}}, { {10, 30,50,70},{50},{80, 90}} }; System.out.println('Multidimensional Array (3-d) is as follows:'); // use for..each loop to iterate through elements of 3d array for (int()() array_2D: intArray) { for (int() array_1D: array_2D) { for(intelem: array_1D) { System.out.print(elem + ' '); } System.out.println(); } System.out.println(); } } }
Çıktı:
Kullanılan girdi dizisi, çeşitli uzunluklarda sütunlara sahip Üç boyutlu bir dizidir. Her boyut için kullanılan her döngü için geliştirilmiş, dizinin içeriğini tablo biçiminde görüntüler.
Sıkça Sorulan Sorular
S # 1) İki boyutlu dizi derken neyi kastediyorsunuz?
Cevap: İki boyutlu diziye dizi dizisi denir ve genellikle satır ve sütunlardan oluşan matrisler biçiminde düzenlenir. İki boyutlu bir dizi, kullanımını çoğunlukla ilişkisel veritabanlarında veya benzer veri yapılarında bulur.
S # 2) Java'da Tek boyutlu dizi nedir?
Cevap: Java'daki tek boyutlu dizi, yalnızca bir indeksi olan bir dizidir. Bu, Java'daki en basit dizi biçimidir.
S # 3) Tek boyutlu bir dizi ile iki boyutlu bir dizi arasındaki fark nedir?
Cevap: Tek boyutlu dizi, tek bir öğe dizisini saklar ve yalnızca bir dizine sahiptir. İki boyutlu bir dizi, bir dizi öğe dizisini depolar ve öğelerine erişmek için iki dizin kullanır.
S # 4) İki boyutlu olmak ne anlama geliyor?
Cevap: İki boyutlu, yalnızca iki boyutu olan anlamına gelir. Geometrik bir dünyada, yalnızca yüksekliği ve genişliği olan nesneler iki boyutlu veya 2D nesnelerdir. Bu nesnelerin kalınlığı veya derinliği yoktur.
Üçgen, dikdörtgenler vb. 2D nesnelerdir. Yazılım açısından, iki boyutlu hala iki boyutlu anlamına gelir ve genellikle 1, 2 veya daha fazla boyuta sahip olabilen diziler gibi veri yapılarını tanımlarız.
beta test kullanıcısı ne yapar
S # 5) Bir dizide hangisi önce gelir - Satırlar mı Sütunlar mı?
Cevap: İki boyutlu diziler matrisler olarak temsil edilir ve matrisler genellikle satır x sütun olarak yazılır. Örneğin, 2 × 3 boyutundaki bir matrisin 2 satırı ve 3 sütunu olacaktır. Dolayısıyla, 2D dizisi için de önce satırlar ve sonra sütunlar gelir.
Sonuç
Bu tamamen Java'daki çok boyutlu dizilerle ilgiliydi. İki boyutlu dizilerin tüm yönlerini ve ikiden fazla boyutlu bir diziyi tartıştık.
Bunlar genellikle dizi veya diziler olarak adlandırılır, çünkü çok boyutlu diziler söz konusu olduğunda, her öğe başka bir dizidir. Böylece, bir dizinin başka bir dizi veya basitçe bir dizi dizisi içerdiğini söyleyebiliriz.
Yaklaşan eğitimlerimizde, diziler hakkında daha çok şey keşfedeceğiz ve ardından diğer koleksiyonlara geçeceğiz.
=> Basit Java Eğitim Serisine Buradan Dikkat Edin.
Önerilen Kaynaklar
- Java Dizisi - Java'da Bir Dizinin Elemanları Nasıl Yazdırılır?
- Java Generic Array - Java'da Genel Diziler Nasıl Simüle Edilir?
- C #’da Çok Boyutlu Diziler ve Pürüzlü Diziler
- Java Dizilerine ve İlgili Kavramlara Giriş
- C ++ 'da Çok Boyutlu Diziler
- Java DataTypes, Loops, Arrays, Switch ve Assertions
- Java Dizisi - Java'da Bir Dizi Bildirin, Oluşturun ve Başlatın
- Kod Örnekleriyle Java Dizi Uzunluğu Eğitimi