Java’da diziler, benzer veri türlerini ortak bir isimle tutulmasını sağlayan bir nesne olarak tanımlanmaktadır. Diziler tek boyutlu ve çok boyutlu olmak üzere ikiye ayrılmaktadır. Genellikle tek boyutlu diziler kullanılmaktadır. Dizilerin sağladığı bir diğer kolaylık ise verileri gruplandırmamızı sağlamaktadır. Java’daki diziler nesne olarak sayıldığı için yüksek performans ve güvenlik sağlamaktadır. Diziler ile değişkenler benzer yapıya sahiplerdir. Değişken tanımlanırken bellekte bir değer saklamamıza yardımcı olur. Diziler de aynı şekilde bellekte değer saklarlar ama birden fazla değer tutabilmekteyiz.
İçindekiler
Java’da Dizi Tanımlama
1 | int[] array; //Dizi içinde referans tanımlandı |
Dizi tanımlanırken öncelikli olarak dizinin içindeki elemanların türü belirtilir (int,double,String,byte,long,short…).
Basit bir int türüne sahip dizi tanımlayalım.
1 2 | int dizi[] = {5,4,23,4,56,7}; System.out.println(dizi[3]);//3. elemana erişildi. |
Ekran Çıktısı
1 | 4 |
Yapmış olduğumuz örnekte dizimizi tanımlayıp içerisini rastgele sayılarla doldurduk, dizimizin içini doldurduktan sonra ise ekran çıktımızı verdik. Dizimizde köşeli parantezin içerisine 3 yazdığımızdan dolayı, 3. elemana yani ekran çıktımız 4 sayısına karşılık gelmiştir.
Yukarıdaki tabloda görüldüğü üzere dizideki her elemanın bir indisi vardır, dizinin içerisindeki elemanlara bu indisler ile erişilir. Dizilerin indisi 0’dan başlamaktadır.
String türünde dizi tanımlama örneği yapalım.
1 2 | String dizi[] = {"Muhiddin","Selamsız"}; System.out.println(dizi[0]);//dizinin 0. elemanına erişildi. |
Ekran Çıktısı
1 | Muhiddin |
Yapmış olduğumuz String türündeki dizi örneğinde, dizimizin içerisine isim ve soyisim girdim. Ekran çıktısında ise 0. elemanı yani Muhiddin’i yazdırmasını belirtmiş oldum.
new anahtar sözcüğü ile dizi oluşturma.
1 2 3 | Random rnd = new Random();//Random sınıfını tanımlıyoruz int [] dizi = new int [] {rnd.nextInt(100)};//Dizi içerisine random sayı tanımlıyoruz. System.out.println(dizi[0]); |
Ekran Çıktısı
1 | 97 |
For Döngüsü ile Dizi Elemanlarını Listeleme
1. Örnek
1 2 3 4 5 6 | int dizi [] = new int[10];//10 elemanlı bir dizi tanımladık. dizi = new int [] {3,4,5,6,2,3,1,2,10,15,19};//dizimizin içerisindeki sayıları girdik for (int i=0; i<dizi.length; i++) //For döngüsünde koşulumuzu ve artım miktarını belirttik. { System.out.println(dizi[i]);//Çıktımızı verdik } |
Ekran Çıktısı
1 2 3 4 5 6 7 8 9 10 11 | 3 4 5 6 2 3 1 2 10 15 19 |
Yapmış olduğumuz örnekte dizilerimizin içindeki sayıları, lenght metodu ile içerisindeki tüm elemanları yazdırmasını sağladık.
2. Örnek
1 2 3 4 5 6 | String dizi [] = new String[4]; dizi = new String [] {"Selamlar ","Kod ","Kampüsüne ","Hoş ","Geldiniz "};//Dizimizin içerisindeki kelimeleri tanımladık. for (int i=0; i<5; i++)//Şartımızı ve artış miktarını belirttik. { System.out.print(dizi[i]); } |
Ekran Çıktısı
1 | Selamlar Kod Kampüsüne Hoş Geldiniz |
Örneğimizde String veri tipi ile bir dizi oluşturduk ve içerisine girdiğimiz kelimeleri for döngüsü ile ekranda yazdırdık.
Nesne (Object) Dizisi Oluşturma
Dizimizi Object sınıfında oluşturmamız durumunda içerisinde farklı tipte verileri (int,String) barındırabiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 | Object dizi [] = new Object[5];//Dizimizi object sınıfından oluşturduk. dizi [0] ="Tilki Timur";//String tipte veri oluşturduk. dizi [1] =23;//int türünde veri oluşturduk. dizi [2] =55.34; dizi [3] ="Mavi"; dizi [4] =126; for (int i=0; i<5; i++)//Şartımızı ve artış miktarımızı girdik. { System.out.println(dizi[i]); } |
Ekran Çıktısı
1 2 3 4 5 | Tilki Timur 23 55.34 Mavi 126 |
Dizimizi Object sınıfından oluşturduk. Object sınıfından oluşturduğumuz için farklı türde veri tiplerini, bir dizi içerisinde barındırabildik.
Dizileri Kopyalama
Java’da dizileri başka bir diziye kopyalama durumunda kalabiliriz. Başka bir diziye kopyalama işlemi yapmak için 2 yöntem vardır. 1. yöntem ; System.arraycopy() metodu ile kopyalama işlemidir. Bu yöntemde örnek yapalım:
1. Örnek
1 2 3 4 5 6 7 8 9 10 11 12 | int a[] = { 5, 6, 9, 16, 55 }; int b[] = new int[a.length];//a dizisi boyutunda bir b dizisi oluşturduk. System.arraycopy(a, 0, b, 0, 5);//a ve b dizisinde 0. elemandan başlayıp 5. elemana kadar a ve b ögelerini kopyaladık. System.out.println("a [] dizisi içerisindekiler"); for (int i = 0; i < a.length; i++){ System.out.print(a[i] + " ");//a dizisini yazdırdık. } System.out.println("\nb [] dizisi içerisindeki kopyalananlar"); for (int i = 0; i < b.length; i++){ System.out.print(b[i] + " ");//b dizisi içerindeki kopyalananları yazdırdık. } |
Ekran Çıktısı
1 2 3 4 | a [] dizisi içerisindekiler 5 6 9 16 55 b [] dizisi içerisindeki kopyalananlar 5 6 9 16 55 |
2. kopyalama yöntemi ise for döngüsü ile dizinin kopyalanması işlemidir. For döngüsü ile kopyalama yöntemi ile örnek yapalım:
2. Örnek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | String a[] = {"Kod ", "Kampüsüne ", "Hoş ", "Geldiniz"};//String türündeki dizimizi yazdık. String b[] = new String[a.length];//a dizisi boyutunda bir b dizisi oluşturduk. //a [] dizisindekiler b[] dizisine kopyalama işlemini yapıyoruz. for (int i = 0; i < a.length; i++) b[i] = a[i]; //a[] dizisi içerisindekileri yazdırıyoruz System.out.println("\na [] dizisi içerisindekiler"); for (int i=0; i < a.length; i++) { System.out.print(a[i] + " "); } //b[] dizisi içerisindekileri yazdırıyoruz. System.out.println("\nb [] dizisi içerisindeki kopyalananlar"); for (int i = 0; i < b.length; i++){ System.out.print(b[i] + " ");//b dizisi içerindeki kopyalananları yazdırdık. } |
Ekran Çıktısı
1 2 3 4 | a [] dizisi içerisindekiler Kod Kampüsüne Hoş Geldiniz b [] dizisi içerisindeki kopyalananlar Kod Kampüsüne Hoş Geldiniz |
Dizileri Sıralama
Dizilerde sıralama yapmak için birçok yöntem vardır. Biz ise Array.sort() metodunu kullanarak sıralamalar yapacağız.
1. Örnek
Bu örneğimizde dizinin içerisindeki sayıları küçükten büyüğe doğru sıraladık.
1 2 3 4 5 6 | int [] dizi = {5,6,16,55,34,42,35,11}; Arrays.sort(dizi);//Dizi sıralama işlemi yapıldı for (int i=0; i<dizi.length; i++)//Döngümüzdeki koşulu ve artış miktarını girdik { System.out.print(dizi[i]+" "); } |
Ekran Çıktısı
1 | 5 6 11 16 34 35 42 55 |
For döngüsü olmadan da dizilerde sıralama işlemi yapabiliriz örnek yapacak olursak:
2. Örnek
Bu örneğimizde harflerde alfabetik sıralama yaptık.
1 2 3 | String[] dizi = {"F", "Y", "Z", "P", "A"}; Arrays.sort(dizi);//dizi sıralamasını yaptık System.out.println(Arrays.toString(dizi)); |
Ekran Çıktısı
1 | [A, F, P, Y, Z] |
Dizileri Karşılaştırma
İki diziyi karşılaştırma işlemi yapmamız gerektiğinde Arrays.Equals metodunu kullanmamız gerekir. Fakat karşılaştıracağımız iki dizinin de aynı türden olması gerekmektedir.
Karşılaştırma ile ilgili örneklerimizi yapalım:
1. Örnek
1 2 3 4 5 6 | //Dizilerimize sayılar tanımladık. int [] dizi = {52,99,23,43}; int [] dizi2 = {52,99,23,43}; int [] dizi3 = {52,22,23,43}; System.out.println(Arrays.equals(dizi, dizi2));//dizi ile dizi2'yi karşılaştırdık ve sonuç true. System.out.println(Arrays.equals(dizi2, dizi3));//dizi2 ile dizi3'ü karşılaştırdık ve sonuç false. |
Ekran Çıktısı
1 2 | true false |
2. Örnek
1 2 3 4 5 6 | //Dizilerimize verileri girdik. Object [] dizi = {18923,"Süleyman",20,}; Object [] dizi2 = {18923,"Süleyman",20}; Object [] dizi3 = {18923,"Sülyeman",21}; System.out.println(Arrays.equals(dizi, dizi2));//dizi ile dizi2'yi karşılaştırdık ve sonuç true. System.out.println(Arrays.equals(dizi2, dizi3));//dizi2 ile dizi3'ü karşılaştırdık ve sonuç false. |
Ekran Çıktısı
1 2 | true false |
Dizilerde binarySearch Yöntemi ile Arama Yapmak
Java’da diziler içerisindeki elemanları aratmak istediğimizde Arrays.binarySearch() yöntemini kullanırız.
1 2 3 4 | int arama;//Dizide arama yapmak ve ekrana yazdırmak için değişken tanımladık. int a [] = {12,16,20,98,76};//a dizisi içerisine sayıları girdik arama = Arrays.binarySearch(a, 98);//a dizisinde 98 sayısını arattık. System.out.println("98 sayısının indisi = "+arama);//ekrana yazdırdık |
Ekran Çıktısı
1 | 98 sayısının indisi = 3 |
Yapmış olduğumuz arama örneğinde, 98 sayısını arattık ve ekran çıktısı olarak 98 sayısının indisini, yani yer aldığı eleman sayısını yazdırdık.
Çok Boyutlu Diziler
Şimdiye kadar yaptığımız uygulama ve örnekler tek boyutlu diziler üzerineydi. Çok boyutlu dizilerin iki veya daha fazla boyutu olmaktadır. En fazla kullanılan çok boyutlu dizi ise 2 boyutludur. Çok boyutlu dizilerin temel mantığını örnekler ile daha iyi anlayacağız.
Çok Boyutlu Dizi Tanımlaması
1 | int a [] [] = new int [5] [5]; //5 satır ve 5 sütunlu çok boyutlu bir dizin tanımlandı |
1. Örnek
1 2 3 4 5 6 7 8 9 10 11 | //çok boyutlu dizimizi oluşturduk. int dizi[][] = { {16,21,33},{67,90,11},{39,10,98},{18,76,87}}; //for döngüleri ile satır ve sütunlara elemanları yazmasını sağladık. for (int i=0; i< 4 ; i++) { for (int j=0; j < 3 ; j++) System.out.print(dizi[i][j] + " "); System.out.println(); } |
Ekran Çıktısı
1 2 3 4 | 16 21 33 67 90 11 39 10 98 18 76 87 |
çok açıklayıcı olmuş. dersim için oldukça faydalı oldu
Hesap makinesinde leblebi yazdıktan sonra hayatımdaki en büyük ikinci başarım bu olacak, çok teşekkür ediyorum.
Sadr, basit ve yüzeysel anlatım var çok başarılı teşekkürler, benim gibi bu yola yeni çıkanlar için çok güzel bilgiler