1. Bir dizi, bir öğe kabıdır
Bilgisayarların çok büyük miktarda bilgiyi işleyebildiğini muhtemelen duymuşsunuzdur. Elbette koşullu ifadeler ( if-else
) ve döngüler ( for
, while
) burada çok yardımcı oluyor. Ama seni ancak bir yere kadar götürebilirler. Sonuçta işlediğiniz verilerin bir şekilde saklanması gerekiyor.
Hemen hemen tüm programlama dilleri gibi, Java da dizi ( sınıf) adı verilen bu harika şeyi sağlayarak veri işlemeyi kolaylaştırır Array
. Bazen tablolar olarak da adlandırılırlar.
Bir dizi, bir değil birkaç değeri depolamanıza izin veren özel bir nesnedir .
Daha önce bir değişkeni (herhangi bir değeri saklayabileceğiniz) bir kutuya benzetmiştik. Bu benzetmeyi sürdürürsek, bir diziyi iç bölmeleri olan bir kutu olarak düşünebiliriz. "Kutu" (dizi) içindeki her bölmenin bir numarası vardır. Tabii numaralandırma sıfırdan başlıyor...
Ya da başka bir benzetme yapabiliriz. Sıradan bir ev ile çok katlı bir apartmanı karşılaştıralım. Sıradan bir ev, tek bir aile tarafından işgal edilir, ancak yüksek katlı bir apartman, dairelere bölünmüştür. Sıradan bir evde yaşayan bir aileye mektup göndermek isterseniz, evin tekil adresini belirtirsiniz. Bir apartman dairesinde yaşayan bir aileye mektup göndermek için, apartman numarasının yanı sıra binanın benzersiz adresini de belirtirsiniz.
Bir dizi değişkeni, çok katlı bir değişken gibidir. Bir değil birçok değeri saklayabilir. Böyle bir değişkenin birkaç dairesi (hücresi) vardır. Her biri numaralarına (dizin) göre adreslenebilir.
Bunu yapmak için, değişken adından sonra, adreslemek istediğiniz hücrenin dizinini köşeli parantez içine alarak belirtirsiniz. Bu oldukça basit:
array[index] = value;
array
Dizi değişkeninin adı, dizideki index
hücre numarası ve value
belirtilen hücreye koymak istediğimiz değerdir.
Ama başlamak için, dizileri nasıl oluşturacağımıza bakalım.
2. Java'da bir dizi öğe oluşturma
Diyelim ki programınızın 100
tamsayıları bir yerde saklaması gerekiyor. Bir dizi bunun için iyi bir aday olacaktır. Ve nasıl bir tane yaratırsınız?
Tek bir tamsayı saklamak isteseydik, int
tip bize uygun olurdu. Ancak tamsayıları saklamak istiyorsak , muhtemelen bir s dizisine100
ihtiyacımız var . Bir tane oluşturmak için kod şöyle görünür:int
int[] array = new int[100];
Bu ifadeyi inceleyelim.
Tahmin edebileceğiniz gibi, eşittir işaretinin solunda, adı array
türü olan bir değişkenin bildirimi var int[]
. Türün int
ardından, bu tür "kutuların" bir değil birkaç değer depolayabileceğini ima eden köşeli parantezler gelir.
Eşittir işaretinin sağında, türü int olan öğeleri (hücreleri) new
elde etmek için bir "nesne oluşturma" (anahtar kelime) örneğimiz var. 100
Burada çok zor bir şey yok.
Benzer şekilde, gerçek sayıları saklamak için 20 hücrelik bir dizi oluşturmak isteseydik , kodumuz şöyle görünürdü:
double[] vals = new double[20];
Bir dizideki hücre sayısına dizinin boyutu veya dizinin uzunluğu denir . Diziler pek çok değeri depolayabildiğinden, kapsayıcı olarak da adlandırılırlar.
İşte önemli bir gerçek: Bir dizinin boyutunu, oluşturulduktan sonra değiştiremezsiniz .
Yeni bir kap oluşturabilirsiniz, ancak mevcut kapsayıcının uzunluğu değiştirilemez.
3. Bir dizinin hücreleriyle çalışma
Tamam, dizi oluşturmayı öğrendik. Şimdi onlarla nasıl çalışacağız?
Eh, neredeyse sıradan değişkenlerle aynı şekilde. Tek fark, dizi değişkeninin adından sonra, çalıştığımız hücrenin numarasını belirtmemiz gerekiyor.
Bir dizideki hücrelerin numaralandırılması her zaman sıfırdan başlar. Bir eleman dizimiz varsa 10
, hücrelerinin sayıları (endeksleri) 0..9
. Dizi öğeler içeriyorsa 200
, dizinler 0..199
. Ve benzer şekilde devam eder.
Örnekler:
kod | Açıklama |
---|---|
|
Bir dizi 10 int öğe oluşturun. İndeksli hücreye değer atayın . İndeksli hücreye değer atayın . İndeksli hücreye , (değeri depolayan ) ve (değeri depolayan ) hücrelerde saklanan değerlerin toplamını yazın . 4 2 9 7 9 2 4 5 0 |
Bu kod yürütüldükten sonra bellekte depolanacak olan budur:
Soldaki sütun (gri), hücre numaralarını (endeksleri) temsil eder. Hücreler atanan değerleri saklar: 4
, 9
ve 4
. Dizi oluşturulduğunda, hücrelerinin tümü sıfırlarla doldurulur.
Bu önemli. Bir dizideki tüm hücreler aynı veri tipine sahiptir. Bir s dizisi oluşturursak String
, hücrelerinde yalnızca dizeler saklanabilir. Bir dizinin veri türü, oluşturulduğunda belirtilir. Ne veri türü ne de dizinin uzunluğu daha sonra değiştirilemez.