Java Dersleri 13)DİZİLER(Arrays) [ÇEVİRİ]

WinnerMan

Uzman üye
31 Mar 2012
1,324
0
Eskişehir
Java Dersleri 14)DİZİLER(Arrays) [ÇEVİRİ]

Java, sabit boyutlu ve aynı türden oluşan dizileri, veri yapılarını destekler.Bir dizi veri koleksiyonunu kaydetmek için kullanılır.

Bireysel veri tanımlamak yerine, bir dizi tanımlarsınız ve değişkenlerinizi bu dizi içine atarsınız.

Değişken Dizisi Tanımlama:

Bir programda diziyi kullanmak için diziyi referans alan ve dizinin tipini belirten bir değişken tanımlamalısınız.
Aşağıda syntax belirtilmiştir:
dataType[] arrayRefVar; // preferred way.
veya
dataType arrayRefVar[]; // works but not preferred way.

Not:dataType arrayRefVar stili tercih edilir.

Örnek:
double[] myList; // preferred way.
veya
double myList[]; // works but not preferred way.


Dizi Yaratma:

Aşağıdaki syntaxı takip ederek "new" anahtar kelimesi ile dizi yaratabilirsiniz.
arrayRefVar = new dataType[arraySize];

Yukardaki ifade 2 şey yapar:
-new dataType[arraySize] 'ı kullanarak yeni bir dizi yaratır.
-arrayRefVar değişkenine diziyi referans atar.

Bir değişken dizisi tanımlama, bir dizi yaratma ve dizinin referansına atama aşağıdaki ifade gibi yapılabilir:
dataType[] arrayRefVar = new dataType[arraySize];

Alternatif olarak aşağıdaki ifade de kullanılabilir:
dataType[] arrayRefVar = {value0, value1, ..., valuek};

Dizinin elemanlarına inde kullanılarak erişilir.Dizi 0'dan başlayarak indexlenir ve bu yüzden ilk elemanın index numarası 0'dır.

ÖRNEK:

Aşağıda bir dizi tanımlanmış;
double[] myList = new double[10];

Yukardaki dizinin temsili resmi ise şu şekilde:
java_array.jpg


Dizileri İşleme:


Dizi elemanlarını işlerken, genelde for veya foreach döngüsü kullanırız çünkü dizinin tüm elemanları aynı tiptedir ve dizinin boyutu bilinir.

Örnek:

Aşağıdaki kodda, bir dizi tanımlanıyor ve bazı atamalar yapılıyor:
public class TestArray {

public static **** main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};

// Print all the array elements
for (int i = 0; i < myList.length; i++) {
System.out.println(myList + " ");
}
// Summing all elements
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList;
}
System.out.println("Total is " + total);
// Finding the largest element
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList > max) max = myList;
}
System.out.println("Max is " + max);
}
}


Sonuç:
1.9
2.9
3.4
3.5
Total is 11.7
ax is 3.5


Foreach Döngüsü:

JDK 15 ile yeni bir for döngüsü getirdi.Diğer dillerdeki gibi verilen dizinin tüm elemanlarını döndürür.Fakat kullanımı biraz farklıdır.Foreach kelimesi yerine for kelimesi kullanılır.

Örnek:
Aşağıdaki örnekte myList dizisi gösteriliyor:
public class TestArray {

public static **** 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);
}
}
}


Sonuç:
1.9
2.9
3.4
3.5


Metotlara Dizi Gönderme:

Metotlara primitive veriler gönderebildiğiniz gibi diziler de gönderebilirsiniz.Örnek olarak;
public static **** printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array + " ");
}
}


Yukardaki kodda bir metotda bir dizi gönderiliyor ve döngü ile tüm dizi ekrana yazdırılıyor.Bunu gerçekleştirmek için aşağıdaki kodu çalıştırın:
printArray(new int[]{3, 1, 2, 6, 4, 2});


Metottan Dizi Döndürmek:

Bir metot, bir dizi döndürebilir.Örnek olarak, aşağıdaki kodlarda gelen dizi tersine çevriliyor ve o diziyi döndürüyor:
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;
}
return result;
}


Dizilerin Sınıfları:

java.util.Arrays sınıfı; sıralama, arama, karşılaştırma ve eleman ekleme için bir çok farklı static metot içerir.Bu metotlar tüm primitive tipler için aşırı yüklenir:
public static int binarySearch(Object[] a, Object key)
public static boolean equals(long[] a, long[] a2)
public static **** fill(int[] a, int val)
public static **** sort(Object[] a)


Bu metotları açıklamayacağım.Ayrıntıları için metot isimlerini google'da arayabilirsiniz.




Not: Çevirilerin hepsi benimdir.Aralarda değiştirme, ekleme yapılmıştır.Benden izinsiz kopyalanması ve başka bir yerde yayınlanması durumunda hakkımı helal etmiyorum!
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.