Java LinkedList Nedir? Kullanımı, Metodları ve Örnekleri

Share

Bu yazıda, Java Collection başlıklı yazımızda bahsettiğimiz LinkedList yapısına daha yakından bakacak ve LinkedList kullanımı, metodları ile ilgili detaylı bilgiler verip bunları örneklendirerek anlatmaya çalışacağız.

LinkedList Nedir?

Java LinkedList, List ve Deque interface’lerine implement edilmiş bir class’tır. Tıpkı ArrayList’ler gibi birden fazla datayı toplu bir şekilde saklamak ve bunların üzerinde çeşitli manipülasyonlar gerçekleştirmek için oluşturulmuş LinkedList’lerin, ArrayList’lerden önemli derecede farkları vardır.

LinkedListler’de her eleman iki bölümden oluşur. İlk bölümde data, ikinci bölümde ise pointer bulunur. Söz konusu pointer bir sonraki elemanı gösterir. LinkedList’lerdeki iki bölümden oluşan bu yapılara node denmektedir.

LinkedList Özellikleri

LinkedList yapısı, oldukça kullanışlı bir yapıdır. Sahip olduğu özellikler sayesinde, pek çok işleme izin verir. Aşağıda LinkedList’lerin bazı özelliklerini görebilirsiniz.

  • LinkedList tekrarlı elemanlar içerebilir
  • LinkedList’lere null eleman eklenebilir.
  • LinkedList, sıralamayı ekleme sırasına göre yapar (insertion order).
  • LinkedList’ler ArrayList’lere göre çok daha hızlıdır.
  • LinkedList’ler eleman ekleme ve eleman silme işlemlerinde çok daha başarılıdır.
  • LinkedList’te index yapısı yoktur. Bu da her silme ve ekleme işleminde tüm elemanların yeniden index’lenmesini gerektirmez. Bu da onun hızlı olma sebeplerinin başında gelmektedir.
  • LinkedList’ler senkronize bir yapıya sahip değildir.
  • LinkedList’ler, aşağıda yer verdiğimiz metodlar yardımı ile listenin başı ve sonuyla ilgili pek çok işlemi rahatlıkla gerçekleştirebilirler.

LinkedList Metodları

  • add(): Verilen objeyi listenin sonuna ekler.
  • add(): Virgül öncesine yazılan indexe, virgül sonrasına yazılan objeyi ekler.
  • addAll(): Listeye liste eklemek için kullanılır.
  • addAll(): Virgül öncesine yazılan indexe, virgül sonrasında yazılan listeyi ekler.
  • addFirst(): Verilen objeyi, listenin başına ekler.
  • addLast(): Verilen objeyi, listenin sonuna ekler.
  • clear(): Listedeki bütün öğeleri siler.
  • contains(): Verilen obje listede varsa, true, değilse false return eder.
  • get(): Verilen index’teki objeyi return eder.
  • size(): Listedeki eleman sayısını verir.
  • getFirst(): Listedeki ilk elemanı verir.
  • getLast(): Listedeki son elemanı verir.
  • indexOf(): Verilen objenin ilk indexini verir.
  • lastIndexOf(): Verilen objenin son indexini verir.
  • remove(): Verilen index’teki elemanı siler.
  • remove(): Verilen objeyi listeden siler.
  • removeFirst(): Listenin ilk öğesini siler.
  • removeLast(): Listenin son öğesini siler.
  • removeFirstOccurrence(): Verilen objenin ilk görünümünü siler.
  • removeLastOccurrence(): Verilen objenin son görünümünü siler.
  • set(): Verilen index’teki elemanı, virgülden sonra verilen obje ile değiştirir.
  • offer(): Verilen objeyi listenin sonuna ekler.
  • offerFirst(): Verilen objeyi listenin başına ekler.
  • offerLast(): Verilen objeyi listenin sonuna ekler.
  • peek(): Listenin ilk elemanını verir.
  • peekFirst(): Listenin ilk elemanını verir. Liste boşsa null return eder.
  • peekLast(): Listenin son elemanını verir. Liste boşsa null return eder.
  • element(): Listenin ilk elemanını return eder. Liste boşsa exception fırlatır.
  • poll(): Listenin ilk elemanını verir ve onu listeden siler.
  • pollFirst(): Listenin ilk elemanını verir ve onu listeden siler. Liste boşsa null sonucunu verir.
  • pollLast(): Listenin ilk elemanını verir ve onu listeden siler. Liste boşsa null sonucunu verir.
  • pop(): Listenin ilk elemanını siler ve onu return eder.
  • push(): Verilen objeyi listenin başına ekler.
  • listIterator(): Listeyi ListIterator olarak return eder.
  • toArray(): Liste’yi Array olarak return eder.

LinkedList Kullanımı

      //LinkedList Oluşturma
        LinkedList<String> ornekLinkedList = new LinkedList<>();
      //Eleman Ekleme
        ornekLinkedList.add("Selam");
        ornekLinkedList.add("Bu");
        ornekLinkedList.add("Bir");
        ornekLinkedList.add(3, "LinkedList");
       //Eleman Silme
        ornekLinkedList.removeFirst();
        System.out.println(ornekLinkedList);