Tavsiye, 2024

Editörün Seçimi

Bir Boyutlu (1B) ve İki Boyutlu (2B) Dizi Arasındaki Fark

Dizi, benzer veri türlerine sahip ve ortak bir adla adlandırılan değişkenler topluluğudur. Bir dizideki belirli bir öğeye, bu dizinin belirli bir dizini tarafından erişilir. Java'daki diziler, C ++ ile karşılaştırıldığında farklı çalışır. Tartışmamızın ana konusu, Bir Boyut ve İki Boyut dizi arasındaki farktır. Bir boyutlu dizi, aynı veri tipine sahip değişkenlerin bir listesidir, iki boyutlu dizi ise benzer veri tiplerine sahip 'dizi dizisidir. C ++ diziler üzerinde sınır denetimi yapmazken, Java diziler üzerinde sıkı denetim denetimi yapar.

Öyleyse, bir karşılaştırma çizelgesiyle birlikte Tek Boyutlu ve İki Boyutlu dizi arasındaki farklarla başlayalım.

Karşılaştırma Tablosu:

Karşılaştırma için temelTek boyutluİki Boyutlu
Temel
Benzer veri türündeki öğelerin tek bir listesini saklayın.'Listeler listesi' veya 'dizi dizisi' veya 'tek boyutlu dizilerin dizisini' saklayın.
deklarasyon/ * C ++ bildirimi
type değişken_adı [boyut]; * /
/ * Java’da beyan
type değişken_adı [];
değişken_adı = yeni tür [boyut]; * /
/ * C ++ bildirimi
type değişken_adı [boyut1] [boyut2]; * /
/ * Java’da beyan
type değişken_adı = new int [size1] [size2]; * /
Alternatif Beyan/ * Java’da
int [] a = yeni int [10]; * /
/ * Java’da
int [] [] a = yeni int [10] [20]; * /
Bayt cinsinden toplam boyutToplam Bayt = sizeof (dizi değişkeninin veri türü) * dizi boyutu.Toplam Bayt = sizeof (dizi değişkeninin veri türü) * ilk dizinin boyutu * ikinci dizinin boyutu.
Alma parametresiBir işaretçi, büyüklükteki bir dizi veya boyutsuz bir dizi alınabilir.Onu alan parametre bir dizinin en sağ boyutunu tanımlamalıdır.
boyutlarTek boyutlu.İki boyutlu.

Tek Boyutlu Dizinin Tanımı (1 Boyutlu dizi)

Tek Boyutlu veya Tek Boyutlu dizi, “benzer veri türlerinin değişkenlerinin listesi” olarak kabul edilir ve her değişkene, dizinin bu dizinin adından önce gelen köşeli parantez içinde belirtilmesiyle ayrı bir şekilde erişilebilir.

C ++ 'da, bir dizi değişkeninin boyutuyla bildirilmesi, bellekte yer açmak için yeterlidir. Java'da bu iki adımda gerçekleştirilir. İlk önce, istediğiniz tipte bir değişken bildirmelisiniz. İkinci olarak, 'new' kullanarak diziyi tutmak için belleği ayırmalı ve bunu bildirilen dizi değişkenine atamalısınız. Dolayısıyla diziler Java'da dinamik olarak tahsis edilmiştir.

C ++ bağlamında tartışalım

 // C ++ 'da bildirge değişken_name [size]; 

Burada tür, dizi değişkeninin veri türünü bildirir ve boyut, dizinin tutacağı öğe sayısını tanımlar.

Örneğin, yılın her ayının bakiyesini içerecek bir dizi bildirmek istiyorsak.

 // örnek int month_balance [12]; 

Ay _ dengesi, her ayın bakiyesini temsil edecek olan 12 tamsayıyı tutacak dizi değişkenidir. Şimdi, April Nisan ’ayının bakiyesine erişmek istiyorsak, değişken adını ve ardından index ay ba balance [3]’ gibi Nisan ayının endeks değerini içeren köşeli ayraçtan bahsetmek zorunda kaldık. Ancak 'Nisan' olarak yılın dördüncü ayıdır, ancak '[3]' ten bahsetmiştik, çünkü tüm diziler ilk öğelerinin dizini olarak 0'a sahiptir.

Java’da bu yapılabilir.

 // Java türünde bildirim değişken_adı []; değişken_adı = yeni tür [boyut]; 

Burada başlangıçta türüyle bir dizi değişkeni bildirdik ve sonra 'new' ve bildirilen dizi değişkenine 'new' atamasını kullanarak belleğe bellek ayırdık. Örneğin, yılın her ayında dengeyi içerecek bir dizi bildirmek istiyorsak yukarıdaki örneğe bakalım.

 // example int month_balance []; month_balance = yeni int [12]; 

Burada, 'new', “month_balance” dizisi değişkenine bellek ayırır, şimdi mont_balance şimdi 12 tamsayı değerindeki belleği tutacaktır.

Diziler bildirildiklerinde başlatılabilirler. Dizi başlatıcı, küme parantezi ile çevrili virgülle ayrılmış değerlerin listesidir.
//örnek

 int month_balance = {100, 500, 200, 750, 850, 250, 630, 248, 790, 360, 450, 80}; 

İki Boyutlu Dizinin Tanımı (2 Boyutlu dizi)

Hem C ++ hem de Java, çok boyutlu bir diziyi destekler. Çok boyutlu bir dizinin en basit biçimlerinden biri, iki boyutlu bir dizi veya 2 boyutlu bir dizidir. İki Boyutlu bir dizi 'dizi dizisi' veya 'tek boyutlu diziler dizisi' olarak kabul edilebilir. İki boyutlu dizi değişkenini bildirmek için, ikinci dizinin ikinci köşeli parantez grubu olduğu iki kare parantezin ardından dizi adını belirtmeliyiz.

İki boyutlu bir dizi, satır dizisi matrisi biçiminde depolanır; burada ilk dizin diziyi ve ikinci dizini sütunu gösterir. Bir dizinin ikinci veya en sağdaki dizini, bir dizinin öğelerine erişirken ilk veya en soldaki dizine kıyasla çok hızlı bir şekilde değişir.

C ++ 'da, iki boyutlu dizi;

 // C ++ 'da bildirge değişken_adı [size1] [size2]; 

Örneğin, yılın her ayında her 30 günde bir bakiyeyi 2 boyutlu bir dizide saklamak istiyoruz.

 // örnek int month_balance [12] [30]; 

Java’da iki boyutlu dizi

 // Java türündeki bildirim değişken_adı = new int [size1] [size2]; // örnek int month_balance = yeni int [12] [30]; 

Tüm diziyi bir işleve parametre olarak geçiremediğimiz için, dizinin ilk öğesine bir işaretçi geçilir. İki boyutlu diziyi alan bir argüman, en doğru boyut olduğunu tanımlamalıdır. Dizinin doğru dizine alınmasını istiyorsa derleyicinin ihtiyaç duyduğu için her satırın uzunluğunu doğrulamak için en doğru boyut gereklidir. En sağdaki endekste belirtilmemişse, derleyici bir sonraki satırın nerede başladığını belirleyemez.

 // Java’daki örnek, alıcı alma_funct (int a [] [10]) {. . . } 

Bellek Java'da iki boyutlu diziye dinamik olarak tahsis edildiğinde, en soldaki dizin belirtilir ve kalan boyutlar ayrı olarak tahsis edilebilir, yani dizinin tüm satırları aynı boyutta olmayabilir.

 // Java'daki örnek int month_balance = new int [12] []; month_balance [0] = yeni int [31]; month_balance [1] = yeni int [28]; month_balance [2] = yeni int [31]; month_balance [3] = yeni int [30]; month_balance [4] = yeni int [31]; month_balance [5] = yeni int [30]; month_balance [6] = yeni int [31]; month_balance [7] = yeni int [30]; month_balance [8] = yeni int [31]; month_balance [9] = yeni int [30]; month_balance [10] = yeni int [31]; month_balance [11] = yeni int [30]; month_balance [12] = yeni int [31]; 

Ancak bunu yapmanın bir avantajı yok.

Bir Boyutlu ve İki Boyutlu Dizi Arasındaki Temel Farklılıklar

  1. Tek boyutlu dizi, elemanları benzer veri tipinde olan bir listedir. Öte yandan, iki boyutlu dizi, elemanları benzer veri tipinin dizisi olan bir listedir.
  2. C ++ 'da, bir boyutlu dizi, bir alma fonksiyonunun parametresi tarafından alındığında, dizinin büyüklüğünden bahsetmek gerekli değildir, derleyici, türün dizisinin (parametre ile birlikte belirtilen veri tipinin) bir uzunluk ile olduğunu anlar. alınacak. İki boyutlu bir dizide, ikinci veya en sağdaki dizinin, derleyicinin tek bir satır sonunun nerede başladığını ve yeni bir satırın nerede başladığını bilmesi gerektiği şeklinde belirtilmesi gerekir.
  3. C ++ 'da, tek boyutlu dizi, indekslenmiş sıradaki bitişik bir hafıza konumunda saklanırken, iki boyutlu dizi, aynı zamanda bitişik hafıza konumunda da depolanır, fakat iki boyutlu bir sıradaki çoklu sıralarda olduğu gibi, ilk satırı ikinci, üçüncü ve diğerleri takip eder.

Not:

Hem tek boyutlu dizinin hem de iki boyutlu dizinin bir işleve iletilmesi benzerdir, yani her ikisi de yalnızca dizi adıyla geçirilir

 // örnek passing_funt (name_of_array); 

Sonuç:

Hem bir boyutlu hem de iki boyutlu dizide, dizin çok önemli bir rol oynar çünkü dizideki bir öğeyi özel olarak tanımlayan tek şey budur. Hem bir boyutlu hem de iki boyutlu dizi bildirimleri sırasında başlatılabilir.

Top