Java Diziler
Java boyutu belirlenmiş aynı tipteki eleman dizesini depolayan “ Diziler “ veri yapılarını kullanmamıza olanak sağlar. Diziler veri grubunu depolamak için kullanılırdı, fakat bir diziyi aynı tipteki değişken grubu olarak düşünmek daha faydalıdır. Değişkenleri tek tek tanımlamaktansa ( sayi0,sayi1,sayi2 … , sayi99 ), sayilar isimli bir tane dizi değişkeni tanımlarız ve sayilar[0], sayilar[1], sayilar [2] … sayilar [99] şeklinde kullanabiliriz.Bu dersimizde dizi değişkenlerinin tanımlanması, yeni bir dizi oluşturma, ve indekslenmiş değişkenleri kullanarak dizinin işlenmesini konu alacağız.
Declaring Array Variables
Bir diziyi bir program için kullanmak için, diziyi referans gösterecek bir değişken tanımlamalısınız, ve değişkenin referans gösterebilmesi için dizinin veri tipini de mutlaka belirlemelisiniz.Dizi değişkeni tanımlamak için söz dizimi :
1
2
3
4
5
|
dataType[] arrayRefVar; // tercih edilen yol
or
dataType arrayRefVar[]; // çalışır fakat tercih edilmez
|
dataType [] arrayRefVar stili tercih edilmiş.Diğer still ise ( dataType arrayRefVar [] ) C/C++ dillerinden gelmiştir.C/C++ programlamacılarının uyum sağlaması için Java’da da benimsenmiştir.
ÖRNEK :
1
2
3
4
5
|
double[] myList; // tercih edilen yol
or
double myList[]; // çalışır fakat tercih edilmez
|
Creating Arrays
New operatörünü kullanarak aşağıdaki gibi yeni bir array oluşturabilirsiniz.
1
|
arrayRefVar = new dataType[arraySize];
|
Yukarıda durum iki şey yapar :
- new dataType[arraySize]; kullanarak bir array oluşturur.
- Yeni oluşturulan arrayRefVar referansına atama yapılır.
Bir diziyi oluştururken değer atama işlemini de beraberinde yapabiliriz. Yani tek satırda tanımlama ve değer atama işlemi yapabiliriz.
1
|
dataType[] arrayRefVar = new dataType[arraySize];
|
Dizi oluştururken alternatif bir yol ise ;
1
|
dataType[] arrayRefVar = {value0, value1, ..., valuek};
|
Dizi elemanlarına indeksleri ile ulaşılabilir.İndeksler 0’dan başlayıp dizi uzunluğunun bir eksiğine (arrayRefVar.length-1) kadar gider.
Örnek:
Aşağıdaki örnekte bir dizi değişkeni tanımlanıyor ve double tipinde 10 elemanlı bir dizi oluşturup myList ismine atama yapılıyor.
1
|
double[] myList = new double[10];
|
Dizinin İşlenmesi
Bir dizi işlenirken , biz çoğunlukla bir döngü kullanırız. Bunun sebebi ise dizi içerisindeki elemanların hepsinin tipleri aynı olmakla birlikte dizinin de boyutunu biliyor olmamızdır.
Örnek:
Burada dizi oluşturma, ilk değeri atama ve diziyi işleme aşamalarını görebilirsiniz.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// bütün dizi elemanlarını yazdır
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + ” “);
}
// bütün elemanları topla
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println(“Total is “ + total);
// en büyük sayıyı bul
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
System.out.println(“Max is “ + max);
}
}
|
Ekran çıktısı ise ;
1
2
3
4
5
6
|
1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5
|
Foreach döngüsü
JDK 1.5 ile birlikte foreach isimli yeni bir for döngüsü tanıtıldı.Bu for döngüsü bütün elemanları indeks’e bağlı olmadan sırasıyla travers eder.
Örnek :
Aşağıdaki kod myList dizisindeki bütün elemanları gösterir.
1
2
3
4
5
6
7
8
9
10
11
|
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Print all the array elements
for (double element: myList) {
System.out.println(element);
}
}
}
|
Ekran çıktısı ;
1
2
3
4
|
1.9
2.9
3.4
3.5
|
Dizilerden methodlara geçiş
Methodlarda değişken olarak ilkel değişkenleri kullanabildiğimiz gibi dizileri de methodlarda değişken olarak kullanabiliriz.Örneğin aşağıdaki method da elemanlar int dizisinin içinde gösteriliyor.
1
2
3
4
5
|
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + ” “);
}
}
|
Methodu dizi değişkeniyle çağırabilirsiniz.Örneğin aşağıdaki method 3,1,2,6,4 ve 2 çıktısını verir.
1
|
printArray(new int[]{3, 1, 2, 6, 4, 2});
|
Method’dan diziye geri dönüş
Bir method aynı zamanda bir diziye de geri dönüş yapabilir.
Örnek :
1
2
3
4
5
6
7
8
|
public static int[] reverse(int[] list) {
int[] result = new int[list.length];
for (int i = 0, j = result.length – 1; i < list.length; i++, j—) {
result[j] = list[i];
}
return result;
}
|