Java LinkedList (Örneklerle)

Bu eğitimde, örnekler yardımıyla Java LinkedList hakkında ayrıntılı bilgi edineceğiz.

LinkedListJava koleksiyonları çerçeve sınıfı bağlantılı liste veri yapısı (iki kat LinkedList) işlevselliğini sağlar.

Java Doubly LinkedList

Bağlantılı listedeki her öğe bir düğüm olarak bilinir . 3 alandan oluşur:

  • Önceki - listedeki önceki öğenin adresini saklar. Öyle nullilk elemanı için
  • Sonraki - listedeki sonraki öğenin adresini saklar. Bu nullson unsur için
  • Veri - gerçek verileri depolar

Java LinkedList Oluşturma

Java'da bağlantılı listeleri nasıl oluşturabiliriz:

 LinkedList linkedList = new LinkedList();

Burada Tür, bağlantılı listenin türünü belirtir. Örneğin,

 // create Integer type linked list LinkedList linkedList = new LinkedList(); // create String type linked list LinkedList linkedList = new LinkedList();

Örnek: Java'da LinkedList oluşturma

 import java.util.LinkedList; class Main ( public static void main(String() args)( // create linkedlist LinkedList animals = new LinkedList(); // Add elements to LinkedList animals.add("Dog"); animals.add("Cat"); animals.add("Cow"); System.out.println("LinkedList: " + animals); ) )

Çıktı

 LinkedList: (Köpek, Kedi, İnek)

Yukarıdaki örnekte, LinkedListadlandırılmış bir hayvan yarattık .

Burada add()LinkedList'e eleman eklemek için yöntemi kullandık . add()Bu eğitimde daha sonra yöntem hakkında daha fazla bilgi edineceğiz .

Java LinkedList'in Çalışması

Bağlantılı listelerdeki öğeler sırayla saklanmaz. Bunun yerine, dağılırlar ve bağlantılar aracılığıyla bağlanırlar ( Önceki ve Sonraki ).

Java LinkedList Uygulaması

Burada bağlantılı bir listede 3 unsurumuz var.

  • Köpek - önceki adres olarak boş tutan ve sonraki adres olarak Cat'in adresini tutan ilk unsurdur.
  • Kedi - önceki adres olarak Köpeğin adresini ve sonraki adres olarak İnek adresini tutan ikinci unsurdur.
  • İnek - Cat'in adresini önceki adres olarak ve sonraki öğe olarak boş tutan son unsurdur

Daha fazla bilgi edinmek için LinkedList Veri Yapısını ziyaret edin.

Java LinkedList Yöntemleri

LinkedListbağlantılı listelerde farklı işlemler gerçekleştirmemize izin veren çeşitli yöntemler sağlar. Bu eğitimde yaygın olarak kullanılan dört LinkedList Operatörüne bakacağız:

  • Öğe ekleyin
  • Erişim öğeleri
  • Öğeleri değiştir
  • Öğeleri kaldır

1. LinkedList'e öğeler ekleyin

add()LinkedList'in sonuna bir eleman (düğüm) eklemek için yöntemi kullanabiliriz . Örneğin,

 import java.util.LinkedList; class Main ( public static void main(String() args)( // create linkedlist LinkedList animals = new LinkedList(); // add() method without the index parameter animals.add("Dog"); animals.add("Cat"); animals.add("Cow"); System.out.println("LinkedList: " + animals); // add() method with the index parameter animals.add(1, "Horse"); System.out.println("Updated LinkedList: " + animals); ) )

Çıktı

 LinkedList: (Köpek, Kedi, İnek) Güncellenmiş LinkedList: (Köpek, At, Kedi, İnek)

Yukarıdaki örnekte LinkedList adlı bir hayvanlar oluşturduk. Burada, add()hayvanlara eleman eklemek için yöntemi kullandık .

İfadeye dikkat edin,

 animals.add(1, "Horse");

Burada indeks numarası parametresini kullandık. Yeni öğenin eklendiği konumu belirten isteğe bağlı bir parametredir.

LinkedList'e öğe ekleme hakkında daha fazla bilgi edinmek için, LinkedList'e öğe eklemek için Java programını ziyaret edin.

2. LinkedList öğelerine erişin

get()LinkedList sınıf yöntemi LinkedList bir öğe ulaşmak için kullanılır. Örneğin,

 import java.util.LinkedList; class Main ( public static void main(String() args) ( LinkedList languages = new LinkedList(); // add elements in the linked list languages.add("Python"); languages.add("Java"); languages.add("JavaScript"); System.out.println("LinkedList: " + languages); // get the element from the linked list String str = languages.get(1); System.out.print("Element at index 1: " + str); ) )

Çıktı

 LinkedList: (Python, Java, JavaScript) Dizin 1'deki öğe: Java

Yukarıdaki örnekte, get()yöntemi 1 parametresiyle kullandık . Burada, yöntem 1. dizindeki öğeyi döndürür .

LinkedList öğelerine iterator()ve listIterator()yöntemini kullanarak da erişebiliriz . Daha fazla bilgi edinmek için LinkedList öğelerine erişmek için Java programını ziyaret edin.

3. Bağlantılı Listenin Öğelerini Değiştirin

set()Yöntem LinkedListsınıfı LinkedList elemanlarını değiştirmek için kullanılır. Örneğin,

 import java.util.LinkedList; class Main ( public static void main(String() args) ( LinkedList languages = new LinkedList(); // add elements in the linked list languages.add("Java"); languages.add("Python"); languages.add("JavaScript"); languages.add("Java"); System.out.println("LinkedList: " + languages); // change elements at index 3 languages.set(3, "Kotlin"); System.out.println("Updated LinkedList: " + languages); ) )

Çıktı

 LinkedList: (Java, Python, JavaScript, Java) Güncellenmiş LinkedList: (Java, Python, JavaScript, Kotlin)

Yukarıdaki örnekte, LinkedList adlı bir dil oluşturduk. Çizgiye dikkat edin,

 languages.set(3, "Kotlin");

Burada set()yöntem, dizin 3'teki öğeyi Kotlin olarak değiştirir.

4. Bağlantı Listesinden öğeyi kaldırın

The remove() method of the LinkedList class is used to remove an element from the LinkedList. For example,

 import java.util.LinkedList; class Main ( public static void main(String() args) ( LinkedList languages = new LinkedList(); // add elements in LinkedList languages.add("Java"); languages.add("Python"); languages.add("JavaScript"); languages.add("Kotlin"); System.out.println("LinkedList: " + languages); // remove elements from index 1 String str = languages.remove(1); System.out.println("Removed Element: " + str); System.out.println("Updated LinkedList: " + languages); ) )

Output

 LinkedList: (Java, Python, JavaScript, Kotlin) Removed Element: Python New LinkedList: (Java, JavaScript, Kotlin)

Here, the remove() method takes the index number as the parameter. And, removes the element specified by the index number.

To learn more about removing elements from the linkedlist, visit the Java program to remove elements from LinkedList…

Other Methods

Methods Description
contains() checks if the LinkedList contains the element
indexOf() returns the index of the first occurrence of the element
lastIndexOf() returns the index of the last occurrence of the element
clear() removes all the elements of the LinkedList
iterator() returns an iterator to iterate over LinkedList

LinkedList as Deque and Queue

Since the LinkedList class also implements the Queue and the Deque interface, it can implement methods of these interfaces as well. Here are some of the commonly used methods:

Methods Descriptions
addFirst() adds the specified element at the beginning of the linked list
addLast() adds the specified element at the end of the linked list
getFirst() returns the first element
getLast() returns the last element
removeFirst() removes the first element
removeLast() removes the last element
peek() returns the first element (head) of the linked list
poll() returns and removes the first element from the linked list
offer() adds the specified element at the end of the linked list

Example: Java LinkedList as Queue

 import java.util.LinkedList; import java.util.Queue; class Main ( public static void main(String() args) ( Queue languages = new LinkedList(); // add elements languages.add("Python"); languages.add("Java"); languages.add("C"); System.out.println("LinkedList: " + languages); // access the first element String str1 = languages.peek(); System.out.println("Accessed Element: " + str1); // access and remove the first element String str2 = languages.poll(); System.out.println("Removed Element: " + str2); System.out.println("LinkedList after poll(): " + languages); // add element at the end languages.offer("Swift"); System.out.println("LinkedList after offer(): " + languages); ) )

Output

 LinkedList: (Python, Java, C) Accessed Element: Python Removed Element: Python LinkedList after poll(): (Java, C) LinkedList after offer(): (Java, C, Swift)

Example: LinkedList as Deque

 import java.util.LinkedList; import java.util.Deque; class Main ( public static void main(String() args)( Deque animals = new LinkedList(); // add element at the beginning animals.add("Cow"); System.out.println("LinkedList: " + animals); animals.addFirst("Dog"); System.out.println("LinkedList after addFirst(): " + animals); // add elements at the end animals.addLast("Zebra"); System.out.println("LinkedList after addLast(): " + animals); // remove the first element animals.removeFirst(); System.out.println("LinkedList after removeFirst(): " + animals); // remove the last element animals.removeLast(); System.out.println("LinkedList after removeLast(): " + animals); ) )

Output

 LinkedList: (Cow) LinkedList after addFirst(): (Dog, Cow) LinkedList after addLast(): (Dog, Cow, Zebra) LinkedList after removeFirst(): (Cow, Zebra) LinkedList after removeLast(): (Cow)

Iterating through LinkedList

We can use the Java for-each loop to iterate through LinkedList. For example,

 import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating a linked list LinkedList animals = new LinkedList(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); System.out.println("LinkedList: " + animals); // Using forEach loop System.out.println("Accessing linked list elements:"); for(String animal: animals) ( System.out.print(animal); System.out.print(", "); ) ) )

Output

 LinkedList: (Cow, Cat, Dog) Accessing linked list elements: Cow, Cat, Dog,

LinkedList Vs. ArrayList

Both the Java ArrayList and LinkedList implements the List interface of the Collections framework. However, there exists some difference between them.

LinkedList ArrayList
Implements List, Queue, and Deque interfaces. Implements List interface.
Stores 3 values (previous address, data, and next address) in a single position. Tek bir konumda tek bir değeri saklar.
Çift bağlantılı liste uygulamasını sağlar. Yeniden boyutlandırılabilir bir dizi uygulaması sağlar.
Bir eleman eklendiğinde prevve nextadres değiştirildiğinde. Bir öğe eklendiğinde, bu konumdan sonraki tüm öğeler kaydırılır.
Bir öğeye erişmek için, baştan öğeye kadar yinelememiz gerekir. Dizinler kullanarak öğelere rastgele erişebilir.

Not : Java'daki arayüzleri kullanarak bir LinkedList de oluşturabiliriz. Örneğin,

 // create linkedlist using List List animals1 = new LinkedList(); // creating linkedlist using Queue Queue animals2 = new LinkedList(); // creating linkedlist using Deque Deque animals3 = new LinkedList();

Burada LinkedList bir arayüz kullanılarak oluşturulmuşsa, diğer arayüzler tarafından sağlanan yöntemleri kullanamayız. Yani, hayvanlar1 özel yöntemleri Queueve Dequearayüzleri kullanamaz .

Ilginç makaleler...