Array/ArrayList/String/AutoBoxing (Java)

ARRAYLER

Kodlarda syntax hatası olabilir pseudocode gibi düşünebilirsiniz. Yer kaplamaması için System.out.println(“”); şeklinde yazacağıma direk sout şeklinde yazdım. Tamamen sıfırdan kod öğrenen biri için değil de zaten diğer dillerden bu kavramlara aşina olan kişilerin bu yazıyı okumasını öneririm. Bu yazımda çok fazla detaylar üzerinde durmayacağım. Arrayler, Stringler bildiğimiz konular.

int[] a = new int[10];  Bellekte 10 adet int yer ayırıyor.

Burada a bir referans ve 10 adet yer ayrılan Array’e referans oluyor.

for (int i = 0; i< a.length; i++ {

a[i] = Scanner.nextInt();

}

Şeklinde arrayimize eleman ekleyebiliyoruz.

a.length metodu arrayin uzunluğunu bulmamıza yardımcı olur.

Arrays sınıfı kullanarak array_sort kullanımı:

Arrays.sort(array); // şeklinde arrayimizi sıralayabiliyoruz (sort algoritmaları gibi)

Arraylerin birbirlerine eşit olup olmadığını kontrol etmemiz için (içerik) :

Array.equals(s1,s2);

ÇOK BOYUTLU ARRAYLER

Tıpkı C dilinde olduğu gibi Java’da da kullanımı çok benzer. Çok boyutlu arrayleri matrisler olarak düşünmemiz bize aşırı kolaylık sağlar.

int [][] array2 = new int[2][2]; // 2 satır 2 sütuna sahip bir array oluştur.

array2[0][0] = 10; // 0. Satırının 0. Sütununa ekle ve bunun gibi matrisler gibi ekleme işlemlerini yapıyoruz.

array2 = { (10,20)}; // (0,0) ve (0,1) e ekleme yapar anlamına geliyor.

String [] array = {“elma”,”armut”); // string arraylerini kullanma örneği

int[] array2= {1,2,5}; // basit bir array tanımlama

FOR EACH

For each döngüsü yazacağımız kodlarda tasarruf etmemizi sağlar.

for(String a : array){ // oluşturdumuz array için a referansı ile çok kolay bir şekilde bastırabiliyoruz.

Systemout(a);

}

ARRAYLISTLER

ArrayListler arrayler ile aynı mantığa sahiptir ancak tanımı farklılık gösteriyor. Aşağıda tanımı gözükmekte.

ArrayList<type> referans = new ArrayList<type>(); // şeklinde tanımlıyoruz.

Arraylist.add(“Gandalf”);

ArrayList.add(15); // şeklinde arraylistimize ekleme yapabiliyoruz.

Arraylist.size(); fonksiyonu ile uzunluğunu bulabiliyoruz.

Elbette array sınıfı ve arraylist sınıfları için çok fazla metod bulunmakta. Bunları deneyerek ihtiyacınız olduğu zaman karşınıza çıkacak, kullanacaksınız. Hepsini ezberlemek şart değil. Örnek amaçlı ekliyorum.

for(int i = 0; i < arraylist.size(); i++)

Sysout (arraylist.get(i)); // şeklinde de yazdırabiliyoruz

ArrayList.remove(“Metallica”); // şeklinde silebiliyoruz

ArrayList.remove(1); // şeklinde de ilk elemanı silebiliyoruz

ArrayList.set(4,”Megadeth”); // 4. İndexte olan şeyi güncelleyerek değiştiriyoruz.

AUTOBOXING AND UNBOXING

ArrayList<String> arrayList = new ArrayList<String>(); şeklinde bir arraylist tanımlayabiliyorduk. Ancak arrayListimizi diğer türden değişkenler ile tanımlamaya çalıştığımızda karşımıza sıkıntılar çıkıyor.

ArrayList<int> arraylist2 = new ArrayList<int>(); // int şeklinde yazdığımız zaman referans göndermemiz gerekiyor, çünkü ilkel veri tiplerinden (int,double,float) birini gönderiyoruz. String sınıfı bir class olduğundan dolayı referans koymamıza gerek kalmıyor. İlkel veri tipleri için de sınıflarımız var bunlara wrapper classlar deniyor.

Int a = 5 dediğimiz zaman ilkel bir şekilde tanımlamış oluyoruz. Integer a = 5 ; tarzında da tanımladığımız zaman sınıf cinsinden tanımlamış oluyoruz. Yani :

ArrayList<Integer> arrayList2 = new ArrayList<Integer>();

for(int i = 0; i <10; i++)

arraylist2.add(Integer.valueof(i*4)); // kalın yazdığım yerdeki işlemi Java kendisi yapıyor. Buna autoboxing deniyor. Burada bir kutuya alıyor gibi düşünebiliriz.

for(int i = 0; arraylist2.size(); i++)

arraylist2.get(i).intValue(); // o kutuyu bastırıyoruz.

STRINGLER

Stringler de Java’da kullanımı gayet basit. Aşağıdaki şekilde bir String tanımlayıp a referansı aracılığı ile rahatça kullanabiliyoruz.

String a = “Ege”;

String a1 = “Ege”;

Yukarıdaki kodları karşılaştıracak olursanız if bloğunda (a == a1) diye bakarsanız ikisi de aynı yeri gösterir.  (referansların hafızada gösterdiği yerleri)

Ancak String b1 = new String(“Ege”);

String b= new String(“Ege”); farklıdır yani gösterdikleri yerler farklıdır (referansları farklıdır.)

String tanımlarken bu farkı göz önünde bulundurmalıyız.

sout(b.length); // string harf sayısını bulabiliyoruz (uzunluğunu arraylerde olduğu gibi.)

b.charAt(0); // 0. İndexdeki harfi alır.

Sout b.charAt(i)

sout(b.startsWith(“mu” ); // ile başlıyor mu anlamına gelen bir fonksiyonu

sout(b.indexOf(‘a’)); // şeklinde de harf arayabiliyoruz, harfin kaçıncı indexte olduğunu görürüz.

sout(b.toLowerCase()); // küçük harfe çevirir. Uppercase de büyük harfe çevirir.

int b = Integer.parseInt(a); string içerisinden değerleri alır ve integere çevirir.

sout(b-42) // ile değişmiş değişken üzerinde işlem yapabiliriz.

Bir cevap yazın

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