Veysel Uğur KIZMAZ

Java Dizi Tanımlaması

27.03.2012Okunma Sayısı: 16293Kategori: Java

 Yıllar önce programlamaya yeni başladığımda ilk C’de karşılaştığım anı, dizi kavramını görünce dizi gören masum bilgisayar mühendisi adayı olarak tanımlıyorum kendimi. Tek tek değişken tanımlamadan bizi kurtaran ve üzerinde toplu işlemler yapabileceğimiz mükemmel bir yapıdır.

Günümüz yazılımının geldiği noktada xml, veritabanı, collectionlar vb. yapılar varken dizilere ne gerek var dediğinizi duyar gibiyim. Ne kadar basit olsa da yine de Java’da diziler konusu, programlamayı yeni öğrenen arkadaşlar için güzel bir başlangıç konusu olacağı düşüncesindeyim.
Dizi nedir?
Aynı türden birden çok (belirlediğimiz sınırda) değerini barındıran değer kümesi olarak tanımlayabiliriz.
Örneğin : Dizimizin (değer kümemizin) türü int, boyutu 10 olsun. Bu tanım şu anlama gelmektedir : dizimiz 10 elemanlı ve sadece int türünde 10 tane veri alabilmektedir.
Dizi tanımlaması nasıl olur?
Tür diziAdi[ ] = new Tur[elemanSayisi];
Dizi adının yanına koyduğumuz [ ], bu değişkenimizin bir dizi olduğunu göstermektedir.
Örnek dizi tanımlaması:
 
int dizi[]=new int[20];
 
Dizinin elemanlarına erişim nasıl olur?
dizi[4]
 
Dizi isminin yanında [ ] kullanarak dizimizin kaçıncı elemanını alacağımızı belirliyoruz.  Dizimizin elemanlarıyla ilgili çok önemli bir not : Dizi elemanları 0’dan başlar. Yani biz normalde konuşurken “1. Eleman x, 2. Eleman y” diyoruz. Kodlar kendi arasında konuşurken “0. Eleman x, 1. Eleman y” şeklinde konuşmaktadırlar. Konuşurken elemanın solunda söyledikleri 0., 1. gibi tanıma index demektedir.  Örneğin 5 elemanlı bir dizimiz olsun :
Index
0
1
2
3
4
Değer
5
10
15
20
25
 
0. Eleman : 5
1. Eleman : 10
2. Eleman : 15
3. Eleman : 20
4. Eleman : 25
Olarak tanımlanmaktadır.
Dizinin eleman sayısına erişim nasıl olur?
dizi.length
 
Dizimizin length değişkeninin değeri , dizimizin eleman sayısını belirlemektedir.
Şimdi bir örnek yapalım : 5 elemanlı bir dizi oluşturalım ve dizimizin elemanlarında döngüyle (for) dönelim ve dizimizin elemanlarına değer ataması yapalım. Sonra bir döngüyle(for)  de dizimizin elemanlarını tek tek ekranda gösterelim.
      public static void main(String[] args) {
            //Dizi tanımlaması
            int dizi[]=new int[5];
           
            //Dizimize eleman ataması yapıyoruz.
            for(int i = 0; i < dizi.length; i++){
                  dizi[i]=i + i * 5;     
            }
       
        //Dizimizin elemanlarını alıyoruz.
        for(int i = 0; i < dizi.length; i++){
            System.out.println(i + ". Eleman : " + dizi[i]);
        }
      }
 
Projemizi çalıştıralım.
Dizinin başka bir tanımlama şekli : Elemanların dizinin oluşturulması sırasında atanması.
int dizi[]={5,10,15,20,25,30};
 
Örnekte inceleyelim :
      public static void main(String[] args) {
            //Dizi tanımlaması
            int dizi[]={5,10,15,20,25,30};
             
        //Dizimizin elemanlarını alıyoruz.
        for(int i = 0; i < dizi.length; i++){
            System.out.println(i + ". Eleman : " + dizi[i]);
        }
      }
 
Java’da Değişik Bir Durum : İlk gördüğümde ben de şaşırdım, ama Java gerçeği bu : Java’da illa ki bir dizinin değerleri atanırken aynı türden verilerin atanması zorunluluğu yoktur!!
Nasıl yani?
      publicstaticvoid main(String[] args) {
            //Dizi tanımlaması
            int dizi[]={5,10,15,20,25,30,'V',40};
             
        //Dizimizin elemanlarını alıyoruz.
        for(int i = 0; i < dizi.length; i++){
            System.out.println(i + ". Eleman : " + dizi[i]);
        }
      }
 
Kodumuzu inceleyelim:
int dizi[]={5,10,15,20,25,30,'V',40};

Dizi tanımlaması yapılırken dizinin türü int olması gerekirken 6. elemanı karakter olarak atadık. Normal şartlar altında bu kodun hata vermesi gerekiyordu fakat aşağıdaki ekran çıktısını verdi :
‘V’ karakterinin olduğu yerde hata vermesi gerekirken V karakterinin ASCII kodunu karşımıza getirdi.
Bu denemeden sonra biraz daha ilginç bir örnek yapalım :
‘V’ yerine “Veysel Uğur” yazalım, bakalım adımın baş harfine gösterdiği hassasiyeti adımın tamamına gösterecek mi?
String, Integer’a dönüştürülemeyeceği için kodumuz hata verdi. Yani, kendi aralarında tür dönüşümleri olan değişken türlerinde bu işlem gerçekleşmektedir.
Dizilere giriş konusunda bu bilgiler şimdilik yeterlidir.
Sonraki makalemizde çok boyutlu diziler konusuna değineceğiz.
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com
twitter: @vukizmaz