İlginizi Çekebilir
Java ArrayList Kullanımı Nedir?
  1. Ana Sayfa
  2. Java
  3. Java ArrayList Kullanımı

Java ArrayList Kullanımı

Programlarımızı oluştururken eleman sayısı belli olmayan, dinamik bir şekilde uzayan ve kısalan bir diziye ihtiyaç duyabiliriz. Java ArrayList Kullanımı bu ihtiyacımızı karşılamak için Java Collections Framework altında List yapısının bir parçası olarak karşımıza çıkar.

Eğer bu yapının temelini öğrenmek istiyorsanız Java Collections Nedir isimli konuma emrecelen.com.tr/java-collections-nedir/  adresinden ulaşım sağlayabilirsiniz.

Java ArrayList Nedir?

Algoritmalarımızda kullanmak için bir çok veriye ihtiyaç duyarız, bu verileri elde etme yöntemi kadar nasıl depolayacağımızda önemli bir karar aşamasına sürükler bizleri. Bu kararı kimi zaman veri tabanı, kimi zaman ise dizilerden yana kullanırız.

Kararımız dizilerden tarafa olursa, bu dizinin esnek, çeşitli imkanlar sağlayan ve kontrol etmesi kolay bir yapıda olması gerekir. Bu istekleri de karşılayacak kavram Java Collections Framework altında bulunan List kategorisinin altında yer alan ArrayList kavramından geçer.

Biraz uzun yoldan giden bir örnek oldu, söz konusu anlatımı tekrar ele alarak sadeleştirirsek, Java ArrayList, dinamik olarak şekillenebilen, ekleme, çıkartma, kontrol etme gibi çeşitli işlemleri kolay bir şekilde yapmamıza imkan sağlayan metotlara ev sahipliği yapan, List yapısının altında bulunan tek boyutlu bir dizi sınıfıdır. 👏🏻

Java ArrayList Kullanımı

Kulağı çok hoş gelen özellikleri olan bu kavramın kullanımının birden fazla tanımlaması bulunuyor. Bu tanımlamalara geçmeden önce programınıza küçük bir tanımlama yapmamız gerekiyor.

import java.util.ArrayList; //-> ArrayList sınıfını programımıza tanıtıyoruz.

Bu küçük tanıtma işleminden sonra Java ArrayList kullanımı için hazırız. Birden fazla tanımlanın mümkün olduğunu söylemiştim bu tanımlamaları da programımızın yapısına göre karar vermemiz gerekse de genel olarak kullanım şekilleri bu şekildedir:

ArrayList arrayList = new ArrayList(); //-> Non-generic bir arrayList tanımlaması.
ArrayList <String> genericArrayList = new ArrayList<>(); //-> Generic bir arrayList tanımlaması.

Generic ve Non-Generic kavramları konusunda yabancılık çekiyorsanız, Java Generics Nedir isimli yazıma bu emrecelen.com.tr/java-generic-nedir/ adresten ulaşabilirsiniz.

Tabi, bizim genel olarak kullanmayı tercih edeceğimiz ArrayList tanımlama yapısı ise:

List<veriTipi> benimListem = new ArrayList<>();

Bu tür bir tanımlama yapmamızın sebebi, Java Collection Framework içerisindeki implement ve kalıtım kullanım hiyerarşisi olacaktır. Aynı zamanda casting işlemi ile uğraşmadan daha hızlı ve doğru sonuçlara ulaşmamızı sağlar.

Tanımlama işlemini gerçekleştirdikten sonra, Java ArrayList kullanımı bizlere çeşitli metotlardan faydalanmamıza imkan verir. Bu metotları ise aşağıdaki başlıkta detaylı bir şekilde inceleyebilirsiniz.

Java ArrayList Metotları

  • Add(parametre): Non-generic bir ArrayList tanımlamasında veri tipi fark etmeksizin her türlü öğenin eklemesini gerçekleştirirken, Generic bir ArrayList tanımlamasında belirtilen veri tipindeki değerlerin eklenmesine yardımcı olur.
  • Remove(parametre): Parametre olarak verilecek indis numarası ya da herhangi bir veriyi dizi üzerinden silmek için kullanılır.
  • Clear(): İşlemlerimizi gerçekleştirdikten sonra bir sonraki işlem için dizimizi temizlemek istediğimiz zaman tek bir kod satırı ile bu işlemi bizim için gerçekleştiren temizleme metodudur.
  • Count: Örnek projeler incelediğiniz zaman genelde count isminde bir şeyleri saymak için değişken tanımladıklarını görürsünüz, bu sayma işlemini bir döngü içerisinde gerçekleştirmektense bir satırlık kod ile bizlere dizi içerisinde bulunan eleman sayısını gösteren özelliktir.
  • Contains (parametre): Parametre olarak verilen değeri ArrayList içerisindeki elemanlarda bulunup, bulunmadığını kontrol eder ve geriye boolean bir değer döndürür.
  • Sort():Java.Util kütüphanesi içerisinde bulunan Collections içerisinde elemanları küçükten büyüğe sıralamak için kullanılır. Sıralama işleminin gerçekleşebilmesi için öğelerin karşılaştırılmaya müsait olması gerekmektedir.
  • Size(): ArrayList içerisindeki eleman sayısını döndürür.

İlk aşama için bu metotların ne işe yaradıklarını unutmamak için burada bırakarak, bir kod dizisi içerisinde kullanım örneğine göz atalım.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {

    public static void main(String[] args) {
        ///---> Generic ArrayList Tanımlamasını Gerçekleştirdik <---\\\
        List<Integer> myList = new ArrayList<>();
        ///---> ArrayList Üzerine Eleman Ekleyerek Metotlarımızı Test Edelim. <---\\\
        myList.add(5);
        myList.add(myList.get(0) * 3);
        myList.add(myList.get(1) * 2 + 50);
        myList.add(-myList.get(2));
        myList.add(myList.get(2) * myList.get(0));
        myList.add(-490+ myList.get(1)*5);
        ///---> ArrayList Üzerindeki Elemanlarımızı Yazdıralım <---\\\
        System.out.print("----------------------\n-> Oluşturulan ArrayList Elemanları: ");
        for(int i: myList)
            System.out.print("["+i+"]");
        System.out.println("\n----------------------");
        ///---> Metot Denemeleri <---\\\
        Collections.sort(myList); //--> Oluşturduğumuz Listeyi Küçükten Büyüğe Sıraladık.
        System.out.print("-> Sıralanan ArrayList Elemanları: ");
        for(int i: myList)
            System.out.print("["+i+"]");
        System.out.println("\n----------------------\n-> ArrayList Üzerinde Bulunan Eleman Sayısı (Count): "+myList.stream().count()+"\n----------------------");
        myList.remove(2); //--> 2. İndiste Yer Alan Değeri Sildik.
        myList.remove(4); //--> 5. İndiste Yer Alan Değeri Sildik.
        System.out.print("-> Elemanlar Silindikten Sonra ArrayList Düzeni: ");
        for(int i: myList)
            System.out.print("["+i+"]");
        System.out.println("\n----------------------\n-> Kalan Eleman Sayısı (Size): "+myList.size());
        myList.clear(); //--> Liste Üzerindeki Elemanları Temizliyoruz.
        System.out.println("----------------------\n-> Clear Metodundan Sonraki Eleman Sayımız: "+myList.size()+"\n----------------------");
    }
}

Kod Çıktısı:

Java ArrayList Nedir
Java ArrayList Metotları

Java ArrayList kullanımı esnasında kullanacağımız metotlar arasında en çok popüler olan kavramlar bu yukarıdaki metotlar olsada, işimize yarayacak diğer Java ArrayList metotları üzerinde durarak bir örnek çözmemizin bize oldukça fazla faydası dokunacaktır.

  • toArray(): Collection üzerinde yer alan elemanların birer kopyasını içeren bir dizi döndürür. Bazı işlemlerin daha hızlı gerçekleşmesi ya da veri aktarımı için bu yöntem kullanılabilir.
  • trimToSize(): Java ArrayList kullanımı konusunda oluşturduğumuz dizinin dinamik bir yapıda olduğundan bahsetmiştik. Bu dinamik kavramda sürekli değişen bir eleman sayısı olduğundan dolayı bazı durumlarda bu sayıyı, dizi içerisinde bulunan eleman sayısına eşitlemek isteyebiliriz.
  • lastIndexOf(parametre): Parametre olarak verilen değeri dizinin en son görüldüğü konumun indis numarasını alarak geri döndüren metottur. Eğer parametredeki değer, dizi içerisinde bulunmuyorsa -1 olarak dönüşte bulunur.
///---> ArrayList Tanımlayalım <---\\\
List <String> list = new ArrayList<>(7); //-> ArrayList'in başlangıç kapasitesini 7 Olarak Belirledik.
list.add("Mustafa Enes");
list.add("Oğuz");
list.add("Ömer Faruk");
list.add("Kemal");
list.add("Oğuz");

///---> Kopyalanacak Diziyi Tanımlayalım <---\\\
Object [] array = new Object[5];
array = list.toArray();
System.out.print("----------------------\n< Java ArrayList Kullanımı >\n----------------------\n-> ArrayList Elemanları: ");
for(int i=0;i<list.size();i++)
System.out.print("["+list.get(i)+"] ");
System.out.print("\n----------------------\n-> toArray Kullanımı Sonucunda Oluşan Dizi: ");
for(int i=0;i<array.length;i++)
System.out.print("["+array[i]+"] ");
System.out.println("\n----------------------\n-> lastIndexOf('Oğuz') Kullanımı: "+list.lastIndexOf("Oğuz")+"\n----------------------\n-> Contains('Ömer Faruk') Kullanımı: "+list.contains("Ömer Faruk")+"\n----------------------");

Kod Çıktısı:

Java ArrayList Kullanımı
Java ArrayList Metotları – 2

Kod içerisinde trimToSize metodunun kullanımını anlama konusunda sıkıntı çekebileceğimiz için, bu metodun kullanımını daha kolay anlamamıza yardımcı olacak bir görsel hazırladım. Bu görsel:

Java ArrayList trimToSize
Java ArrayList trimToSize Özelliği

Java ArrayList kullanımının bize sağladığı en büyük özelliği dinamik yapıda oluşunun sağladığı çeşitli yavaşlık sorunlarının önüne bir nebzede olsun geçebilmek için eleman sayımız kadar kapasitesini her işlem sonunda ayarlamamız programımızın performansını arttıracaktır. Görselde gördüğünüz üzere ArrayList dinamik yapısını kapasitesini kendisini otomatik ayarlaması ile alır, ilk tanımlanırken aldığı 9 kapasiteyi, eleman sayısı 9’a ulaştığında 2 katına yani 18’e çıkartır ve bu işlemi sürekli gerçekleştirir.

Bu konunun sonuna gelirken gerçekten zevkli bir konu olan ArrayList kavramını kullanarak artık standart ve herkes tarafından yapılan çift sayıları yazdırma örneğini bende kendi bakış açım ve bir kaç özel dokunuş ile bir örnek kod dizisi oluşturarak konumuzu sonlandıralım.

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        ///---> Java ArrayList Kullanımı Örneği <---\\\
        List <Integer> myRandomList = new ArrayList<>();
        Random random = new Random();
        int value,total=0,cift=0,tek=0;
        System.out.print("----------------------\n< Random ArrayList Oluşturma >\n----------------------\n-> Oluşturulan Dizi Elemanları: ");
        for(int i=0;i<10;i++){
            value= random.nextInt(1000)+1;
            myRandomList.add(value);
            total += myRandomList.get(i);
            if(myRandomList.get(i)%2==0)
                cift += 1;
            else
                tek += 1;
            System.out.print("["+myRandomList.get(i)+"] ");
        }
        System.out.print("\n----------------------\n-> Dizi Elemanlarının Toplamı: "+total+"\n----------------------\n-> Dizideki Çift Sayı Adedi: "+cift+"\n----------------------\n-> Dizideki Tek Sayı Adedi: "+tek+"\n----------------------");
    }
}

Kod Çıktısı:

Java ArrayList Kullanımı Nedir
Java ArrayList Kullanım Örneği

Java ArrayList Kullanımı oldukça zevkli ve öğrenmemiz gereken temel kavramların içerisinde kendisine yer bulabilen bir kavram. Bu yüzden konu ile alakalı aklınıza takılan bir soru ya da konu işleyişi hakkında bir öneriniz var ise benimle aşağıda bulunan yorum yap kısmında iletişime geçmeyi unutmayın. 👋🏻

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap