Java Akademi - Diziler

        Merhaba Arkadaşlar, Ben Erkam Emre DURSUN. Bu dersleri hazırlama amacım, sizlere Java'nın temellerini ayrıntılı bir şekilde öğretmek, Java ile neler yapabileceğinizi göstermek, okul derslerinizi desteklemek ve Java ile istekleriniz ve amaçlarınız doğrultusunda ürünler ortaya çıkarabilmenizi sağlamaktır. Bu derslerin diğer yüzlerce Java dersinden farklı olabilmesinin sebebi, ister metinler üzerinden, ister video üzerinden, isterseniz evde, okulda veya otobüs gibi bir çok yerden ulaşabileceğiniz mobil uygulamalar ile istediğiniz yerden ulaşabileceğiniz dersleri takip ve tekrar edebilmeniz aynı zamanda pratiğe dökebilmenizdir. Umarım faydalı olur, Teşekkürler.


Diziler

        Aynı veri türünden birbiriyle ilişkili verilerin bir arada tutulmasını sağlayan yapılara dizi denir. Diziler ile verileri daha kolay yönetebiliriz. Java'da dizilerin birer nesne olmasından dolayı performansın ve güvenliğin yüksek olması sağlanır. Dizinin içerisinde yer alan her bir ayrı veriye eleman denir. Bu elemanlara indis numaraları verilir ve bu numaralar üzerinden yerlerine ulaşır. 

        Java'da dizi tanımı:

        int[] dizi;

        şeklinde yapılır.

        Dizileri tanımlarken ilk olarak hangi veri tipini barındıracağı belirtir. Yukarıdaki dizi int veri tipinde belirlendi ve başka türde bir veri tipi ekleyemeyiz. Köşeli parantezler ise veri türünün bir dizi olduğunu belirtir. Oluşturduğumuz dizinin adı ise 'dizi'dir.

        Oluşturduğumuz dizilere 2 farklı şekilde eleman atayabiliriz. Birinci yol ile diziyi tanımlarken elemanlarını atayabiliriz. 

        int[] dizi = {1,2,3,4,5};
  
        Yukarıda int veri tipi tutabilen 5 elemanlı bir dizi tanımladık. Dizileri ve elemanlarını bu şekilde tanımlarken bu tanımlamayı aynı satırda yapmalıyız.

        int dizi[];
        dizi = {1,2,3,4,5};

        Yukarıda ise diziyi farklı satırlarda tanımladık. Bu tanımlama biçimi yanlıştır ve programlarımızda hataya yol açacaktır. Dizi tanımlamanın ikinci yolu ise new deyimi iledir. new anahtar kelimesiyle oluşturduğumuz dizilerde ya eleman sayısını belirtmeliyiz, ya da elemanları belirlemeliyiz.

        int[] dizi = new int[10];

        Eğer dizi elelmanlarını ilk satırda tanımlamamışsak, başka bir satırda new anahtar sözcüğü ile tanımlayabiliriz.

        Dizideki her elemanın bir indis numarası vardır ve bu indis numaraları ile elemanlara erişebiliriz. Dizideki elemanların indisi 0'dan başlar. Dizinin ilk elemanının indisi 0 iken ikinci elemanın indisi 1', üçüncü elemanın indisi 2 olacak şekilde bir artarak ilerler. Hangi dizi elemanını yazdırmak istiyorsak onun indis numarasını ekrana yazdırmalıyız.


package diziler;



public class Diziler {



public static void main(String[] args) {
int[] dizi = {1,2,3};
System.out.println(dizi[1]);
System.out.println(dizi[2]);
System.out.println(dizi[0]);
}
}


Tek Boyutlu Diziler


        Tek boyutlu dizilerin elemanlarını for döngüsü ile listeleyebiliriz.

package diziler;

public class Diziler {

public static void main(String[] args) {

int[] dizi = {1,2,3};

int i = 0;

for(i=0;i<3;i++){
System.out.println(dizi[i]);
}

}

}


Eleman Sayısı


        Tek boyutlu dizilerde eleman sayısını length deyimi ile bulabiliriz.

package diziler;

public class Diziler {

public static void main(String[] args) {
int[] dizi = {1,2,3};
System.out.println(dizi.length);
}
}


Dizilerde Hesaplama


        Dizi elemanları ile matematiksel hesaplamalar yapabiliriz. Örneğin dizi elemanlarını toplayalım. 

package diziler;

public class Diziler {

public static void main(String[] args) {
int[] dizi = {4,8,15,16,23,42};
int toplam = 0;
for(int i=0;i<dizi.length;i++) {
toplam = toplam + dizi[i];
System.out.println(toplam);
}
}
}


Elemanları Sıralama

        Array.sort() metodu ile dizi elemanlarını küçükten büyüğe doğru sıralayabiliriz.

package diziler;

import java.util.Arrays;

public class Diziler {

public static void main(String[] args) {
int[] dizi = {1,11,3,7};
Arrays.sort(dizi);
for(int i=0;i<4;i++) {
System.out.println(dizi[i]);
}
}
}


Çok Boyutlu Diziler


        Diziler tek boyutlu olduğu gibi çok boyutluda olabilirler. Örneğin iki boyutlu bir dizi oluşturalım.

        int [] dizi = { {1,2,3}, {4,5,6}};

        Gördüğünüz gibi dizinin birinci boyutu {1,2,3} olurken, ikinci boyutu {45,6} elemanlarından oluşur.

        int satis = new int [5,3];

        Yukarıda birinci boyutu 5 elemanlı, ikinci boyutu ise 3 elemanlı olan bir dizi tanımlanmıştır.

        İki boyutlu dizileri satır ve sütunlardan oluşan bir tabloya benzettiğimizde birinci boyutuna satır, ikinci boyutuna ise sutün diyebiliriz.

        int [] [] diziTablosu = new int [] [] {
                        {700,600,650},
                        {900,800,750},
                        {700,400,350},
                        {400,400,600}};

        Çok boyutlu dizilerde elemanların yazdırılması tek boyutlu dizilerdekine benzer.

package diziler;

import java.util.Arrays;

public class Diziler {

public static void main(String[] args) {
  int [] [] diziTablosu = new int [] [] {
              {700,600,650},
              {900,800,750},
              {700,400,350}};
  
              System.out.println(diziTablosu[2][1]);
}
}


        Çok boyutlu dizilerin tüm elemanlarını ekrana yazdırmak için for döngüsü kullanılabilir.

  package diziler;


import java.util.Arrays;

public class Diziler {

public static void main(String[] args) {
  int [] [] diziTablosu = new int [] [] {
              {700,600,650},
              {900,800,750},
              {700,400,350}};
              
              for(int i=0; i<3;i++) {
              int birinciEleman=1;
                 for(int j=0;j<3;j++){
                int ikinciEleman=1;
              
                 
              System.out.print(diziTablosu[i][j]);
              
                 }
              }
}
}


String[] args Dizisi


        Programlar main metodu içerisinden başlar. Main metodu ise String tipinde args adında bir tek boyutlu diziyi parametre olarak kullanır. main, String tipinde bir tek boyutlu diziyi parametre olarak almak zorundadır ancak dizinin adının args olması zorunlu değildir. Örneğin args yerine dizi yazarak main metodumuzu kullanalım ve Hello World! yazdıralım.


package diziler;



import java.util.Arrays;



public class Diziler {

public static void main(String[] dizi) {
System.out.println("Hello World!");
}
}


Diziler ile İşlemler


Dizileri Kopyalama

        Java'da bir diziyi başka bir diziye kopyalamak istediğimizde, ya hazır metod kullanırız ya da for döngüsü ile dizi elemanlarını başka bir diziye yazdırırız. İlk olarak for döngüsü ile işlemin nasıl yürüdüğüne bakalım.


        

package mainpackage;

public class MainClass {
public static void main(String[] args){
int dizi[] = new int[4];
for(int i = 0; i<dizi.length; i++){
dizi[i] = i+i;
}
int dizi2[] = new int[dizi.length];
for(int i = 0; i<dizi2.length;i++){
dizi2[i] = dizi[i];
 
}
for(int i = 0; i<dizi2.length; i++){
System.out.println(dizi2[i]);
}
}

}



        Dizileri kopyalarken arraycopy metodunu kullanabiliriz. Bu metot dizileri kopyalamak için hazırlanmış bir metottur. Şimdi bu metodu kullanan bir program yazalım.


package mainpackage;

public class MainClass {
public static void main(String[] args){
int[] dizi1 = {0,1,2,3,4};
int [] dizi2 = new int[5];
System.arraycopy(dizi1, 0, dizi2, 0, 5);
for(int i = 0; i<dizi2.length;i++){
System.out.println((i+1) + ". elemanı: " + dizi2[i]);
}
}

}


Burda ki System.arraycopy metodunun parametrelerinin açıklaması:

System.arraycopy(kaynak dizi, kaynak dizinin başlama indisi, hedef dizi, hedef dizinin başlama indisi,kopyalanacak olan eleman sayısı);

şeklindedir.


Dizileri Kıyaslama

        Dizileri kıyaslayıp birbirlerinin aynısı ya da birbirlerinden faklı olduğunu anlayabiliriz. Kıyaslama yaparken arrays.equals metodunu kullanırız. Eğer ki diziler aynıysa bu metod true değerini, farklıysa false değerini döndürür. Metodu kullanırken Arrays paketini import ettiğimize dikkat ediniz.


package mainpackage;

import java.util.Arrays;

public class MainClass {
public static void main(String[] args){
char[] dizi1 = {'a'};
char[] dizi2 = {'b'};
System.out.println(Arrays.equals(dizi1,dizi2));
}
}



Diziye Eleman Atama


        





        Dersi takip ettiğiniz için teşekkürler, dersleri video olarak görmek isterseniz, aşağıda bıraktığım Youtube linkinde bulabilir, ve aynı zamanda android telefonlar için Google Play Store'da Java Akademi uygulamasını bulabilirsiniz. İyi çalışmalar dilerim.

Yorumlar

Popüler Yayınlar