Java’da diziler (arrays)

 

 Dizi (array) nedir?

Dizi ayni tipten verilerin tutuldugu bir tür nesnedir. Bu veriler String, Integer, Obeject … gibi ilkel tipler olabilecegi gibi, kendi yazdigimiz nesneler de olabilir.
Java’da iki tip degisken vardir:
                -ilkel tipler: String, boolean, byte, int, long…
                –Referans tipler: Diziler, siniflar & arayüzler (interface).
 
Dizideki her elemanin bir indeksi vardir. Indeks 0’dan baslar. Yani bir dizinin ilk elemaninin indeksi 0’dir.
 
Dizi nasil tanimlanir?
 
Int[] a;
String[] s;
Obeject o;
 
Yukarida tanimladigimiz a, Integeger, s String ve o Object tipinde birer dizidir.
Dizileri tanimladik fakat henüs olusturmadik. Bunun için new anahtar sözcügünü kullanacagi.
 
a = new int[10]; //10 elemanli bir integer dizisi
s = new String[5]; //5 elemanli bir String dizisi
o = new Object[20]; //20 elemanli bir Object dizisi.
 

Not: o dizisinin elemanlari ayni tipten degil gibi düsünülebilir. Aslinda hepsi de ayni tipten, yani Object (nesne) tipindendir.

 
Eger ayni tipten farkli dizi degiskenleri tanimlamak istersek:
 
int[] a, b, c;
veya
int a[], b[], c[];
 
Yukarida tanimladigimiz dizilerin boyutlarini belirtmedik. Eger tanimlarken boyutlarini da belirtmek istersek:
int a[], b[], c[];
a = new int[10];
b = new int[5];
c = new int[20];
 
Dizi tanimlamanin baska bir yolu ise su sekildedir:
 
int [] a = {4, 1, 32, 56};
 
 
Dizinin elemanlarina ulasmak:
Once bir dizi olusturalim ve bu dizinin elemanlarini ekrana yazdiralim.
        public static void main(String[] args){
            int [] a = {4, 1, 32, 56};
            for(int i=0;i<a.length;i++) //a.length dizinin uzunlugunu verir
            System.out.println("Dizinin "+i+". indeksi: " + a[i]);
        }
 
Baska, kullanisli bir yöntem ise For-each döngüsü.
Java’da dizilerde for-each su sekilde olur:
int[] a = {4,7,9};
            for(int x:a)
                System.out.println(x);
veya
String[] s = {"a","b"};
            for(String x:s)
                System.out.println(x);
 
 
Bir diziyi kopyalamak:
 
Bir diziyi su sekilde kopyalayabiliriz:
int [] a = new int[10];
            for(int i=0;i<a.length;i++)
                a[i] = i * i;
            int[] b = new int[a.length];
            for(int i=0;i<a.length;i++)
                b[i] = a[i];
 
Fakat daha kolay bir yolu var; o da Java’nin hazir metotlarini da kullanabiliriz J
System.arraycopy(a, 0, b, 10);
 
 
Java’da Çok Boyutlu Diziler (Multidimensional Array):
 
Çok boyutlu dizi ne demektir?
Çok boyutlu dizi, dizilerden olusan bir dizi demektir. Her elemani baska bir dizi olan dizi.
Yani öyle bir dizi tanimlayacagiz ki elemanlari baska diziler olsun.
 
int [] [] a;         //diziyi tanimliyoruz
            a = new int [5] []; //diziyi olusturuyoruz
            for(int i=0;i<a.length;i++){
                a[i]=new int[2];
                for(int j=0;j<a[i].length;j++)
                    a[i][j] = i + j; //diziyi dolduruyoruz                
            }     
 
 
Çok boyutlu diziler düzenli ve düzensiz diziler olmak üzere ikiye ayrilir.
Çok bouyutlu düzenli diziler: Her satiri ayni sayida sütun içeren dizilerdir.
Çok boyutlu düzensiz diziler: Her satiri ayni sayida sütun içermeyen dizilerdir.
 
Düzenli dizilere bir örnek:
int [] [] a = {{0,1}, {1,2}, {2,3}, {3,4}, {4,5}};
 
//a.length: 5
//a[0].length: 2
//a[1].length: 2
//…..
 
Düzensiz dizilere bir örnek:
int [] [] a = {{0,1,2,3}, {1,2}, {2}};
 
//a.length: 3
//a[0].length: 4
//a.length: 2
//a.length: 1
 
Düzenli ve düzensiz dizilerin genel yapisina bir de sekille bakacak olursak:
.
 
 
 
 
Dizi Sinifi (class array):
 
Array sinifi, java.util paketindedir. Dizi islemleri için bir çok metot barindirir. Bunlardan bir kaçi sunlardir:
 
sort()
Diziyi tasnif etmek, alfabetik siraya koymak için kullanilir. Ör: Arrays.sort(a);
binarySearch()
Tasnif edilmis bir dizide bir deger aramak için kullanilir.
equals()
Dizileri karsilastirmak için kullanilir. Ör: Arrays.equals(birinciDizi[ ], ikinciDizi[ ]); //true-false
fill()
Dizinin içini doldurmak için kullanilir. Ör: Arrays.fill(aDizisi, 0);
 .

 

8 thoughts on “Java’da diziler (arrays)

  1. düzenli dizilere örnek verirken a.lenght:4 demissiniz comment olarak ama 5 olmasi gerekmiyomu? bu arada bilgileriniz için tesekkürler bilgisayar müh. ögrencisiyim ve paylasimlariniz çok isime yaradi tesekkürler 🙂

  2.  Tebrik ederim, gerçekten yillardir yapmak isteyip de yapamadigimi yapmissiniz.

    Resimler oldukça açiklayici, yalniz: 

    iki boyutlu dizilerde i = 0, 1, 2, 3 gibi  ve j = 0, 1 , 2 gibi degerleri seklin sol ve üst tarafina yazsaydiniz görsel olarak daha akilda kalici olurdu. genellikle iki boyutlu dizilerin satir ve sütunlari karistiriliyor.

    3 boyutlu dizi görseli yetersiz görünüyor, sanirim daha sekilsel birseye gerek var.

    Ellerinize saglik diyerek bitiriyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir