1. Bellekteki diziler
Önceki örneklerde çizimler biraz hatalıydı.
Diziler oluşturulurken (dizeler oluşturulurken olduğu gibi), iki ayrı bellek bloğu tahsis edilir: biri dizinin ( kapsayıcı) kendisini depolamak için ve ikinci blok, adresini depolayan değişken için . Aşağıdaki resim bu açıklamayı temsil etmektedir:
Öğe dizisi için ayrılan 10
int
bellek ve dizinin adresiniint[]
saklayan değişken yeşil renkle gösterilir.int
Karşılaştırma için, int
değeri depolayan sıradan bir değişken 199
mavi renkle gösterilir.
Bu biraz dizeleri bellekte saklamayı anımsatıyor, sence de öyle değil mi?
Bu doğru, ipler. Tıpkı dizelerle çalışırken olduğu gibi, dizi değişkenlerini birbirinize atayabilirsiniz:
kod | Açıklama |
---|---|
|
Bir dizi 10 int öğe oluşturun. İndeksli hücreye değer atayın . İndeksli hücreye değer atayın . Değişkende , değişkende saklanan adresi kaydedin . Şimdi ve bellekteki aynı dizi nesnesine işaret edin. Dizi nesnesinin indeksli hücresine , (değeri depolayan ) ve (değeri depolayan ) hücrelerde depolanan değerlerin toplamını yazın . 4 2 9 7 b a a b 9 2 4 7 9 |
Dizi nesnesi olduğu yerde kalır ve a
ve b
değişkenleri aynı adresi (referans) aynı nesneye depolar. Resme bak:

2. Dizilerle çalışma hakkında daha fazla ayrıntı
Kesinlikle herhangi bir türden bir dizi öğe oluşturabilirsiniz. Bunu yapmak için, tip adından sonra köşeli parantezler yazmanız yeterlidir. Genel olarak, bir dizi oluşturmak şöyle görünür:
type[] name = new type[number];
type, dizide saklayacağımız öğelerin türüdür. Ad, diziye başvurmak için kullanacağımız değişkenin adıdır ve sayı , dizideki hücre sayısıdır.
Yukarıdaki örnek, bir dizi değişkeni ve dizi nesnesi oluşturmak için standart biçimdir. Gerçekte, bunlar iki ayrı varlıktır.
Bir dizi değişkenini bir dizi nesnesinden ayrı olarak oluşturabilirsiniz:
type[] name;
name = new type[number];
Ve önemsiz olmayan bir nokta daha:
Örnekler:
kod | Açıklama |
---|---|
|
Bir dizi n öğe oluşturun |
|
203 Öğelerle bir dizi oluşturun |
|
|
0..99
Bu arada, dizi için var olmayan bir dizini kullanarak bir dizi hücresine erişmeye çalışırsanız (bizim örneğimizde bu, aralıkta olmayan herhangi bir tamsayı anlamına gelir ), programın bir hatayla çökeceğini bilmelisiniz. ArrayIndexOfBoundException
, bu, dizinin dizinin sınırları dışında olduğu anlamına gelir.
3. Dizi uzunluğu
Önceki örnekte gördüğünüz gibi, kendi başına bir dizi değişkeni oluşturabilir ve daha sonra ona kodun herhangi bir yerinde bir değer (bir dizi nesnesine referans) atayabilirsiniz. Bunu bile yapabilirsiniz:
kod | Açıklama |
---|---|
|
Türü şu olan bir dizi değişkeni oluşturun: int[] Değişken a küçükse 10 , o zaman bir öğeler dizisi oluşturun 10 . Aksi takdirde, bir dizi 20 öğe oluşturun |
Ve şimdi böyle bir diziyle başka ne yapabilirsiniz? İçinde kaç tane element olduğunu nereden biliyorsun?
Buna yardımcı olmak için, dizilerin adında özel bir özelliği (değişkeni) vardır length
. Bu ifadeyi kullanarak bir dizinin uzunluğunu bulabilirsiniz:
array.length;
İşte array
dizi değişkeninin adı ve length
dizinin özelliğinin adı. Özelliğin değeri length
değiştirilemez: length
özelliğin kendisi diğer değişkenlere atanabilir, ancak ona hiçbir şey atanamaz (bunu yapmaya çalışırsanız, program derlenmeyecektir).
Bir önceki örnekle şu şekilde devam edebiliriz:
kod | Açıklama |
---|---|
|
Türü şu olan bir dizi değişkeni oluşturun: int[] Değişken a küçükse 10 , o zaman bir öğeler dizisi oluşturun 10 . Aksi takdirde, bir dizi 20 öğe oluşturun Dizinin tüm öğeleri üzerinde döngü yapın: baştan 0 uzunluğaarray.length - 1 |
4. Java'daki diziler hakkındaki gerçeklerin özeti
Diziler hakkında bildiklerimizi özetleyelim:
Gerçek 1. Bir dizi birçok hücreden oluşur.
Gerçek 2. Belirli bir hücreye numarasını (dizin) kullanarak erişirsiniz.
Gerçek 3. Tüm hücreler aynı tiptedir.
Gerçek 4. Tüm hücrelerin başlangıç değeri 0'dır (hücreler sayıları saklıyorsa), null
(hücreler nesne referanslarını saklıyorsa) veya false
(hücreler değerleri saklıyorsa boolean
). Bu bölümde varsayılan değerler hakkında daha fazla bilgi edineceksiniz .
Gerçek 5. String[] list
sadece bir değişkenin bildirimidir. Bu, kapsayıcının (dizi nesnesi) kendisini oluşturmaz. Değişkeni kullanmak için öncelikle bir dizi (container) oluşturmanız ve bunu değişkene atamanız gerekir. Aşağıdaki örneğe bakın.
Gerçek 6. Bir dizi nesnesi (kapsayıcı) oluşturduğumuzda, bunun ne kadar büyük olduğunu, yani kaç hücre içerdiğini belirtmeliyiz. Bu, şöyle bir ifade ile yapılır: new TypeName[n]
;
Gerçek 7. Bir dizinin uzunluğu özelliği kullanılarak bulunabilir .length
.
Gerçek 8. Bir dizi oluşturduktan sonra, elemanlarının türünü veya sakladığı elemanların sayısını değiştiremezsiniz.
kod | Açıklama |
---|---|
|
s öyle null list _null |
|
Değişken list , bir nesneye referans depolar: 10 öğelerden oluşan bir dizi dizisi. n dır-dir10 |
|
Şimdi |
|
Bir istisna (program hatası) atılacak, yani program çökecek. list bir referansı saklarnull |
|
Sınır dışı bir dizi istisnası (program hatası) üretilecek. a elemanları/hücreleri list saklıyorsa 10 , geçerli indeksler şunlardır: 0 1 2 3 4 5 6 7 8 9 — 10 elemanlar. |
GO TO FULL VERSION