java
Dalam tutorial ini, kita akan belajar tentang Java LinkedList secara detail dengan bantuan contoh.
LinkedList
kelas kerangka koleksi Java menyediakan fungsionalitas struktur data daftar tertaut (daftar tertaut ganda).
Setiap elemen dalam daftar tertaut dikenal sebagai simpul . Ini terdiri dari 3 bidang:
null
untuk elemen pertamanull
untuk elemen terakhirBerikut adalah cara membuat daftar tertaut di Java:
LinkedList<Type> linkedList = new LinkedList<>();
Di sini, Ketik menunjukkan jenis daftar tertaut. Misalnya,
// create Integer type linked list
LinkedList<Integer> linkedList = new LinkedList<>();
// create String type linked list
LinkedList<String> linkedList = new LinkedList<>();
import java.util.LinkedList;
class Main {
public static void main(String[] args){
// create linkedlist
LinkedList<String> animals = new LinkedList<>();
// Add elements to LinkedList
animals.add("Dog");
animals.add("Cat");
animals.add("Cow");
System.out.println("LinkedList: " + animals);
}
}
Keluaran
LinkedList: [Dog, Cat, Cow]
Pada contoh di atas, kami telah membuat LinkedList
bernama binatang .
Di sini, kami telah menggunakan add()
metode untuk menambahkan elemen ke LinkedList. Kita akan mempelajari lebih lanjut tentang add()
metode nanti dalam tutorial ini.
Elemen dalam daftar tertaut tidak disimpan secara berurutan. Sebaliknya, mereka tersebar dan terhubung melalui tautan (Sebelumnya dan Berikutnya ).
Di sini kita memiliki 3 elemen dalam daftar tertaut.
Untuk mempelajari lebih lanjut, kunjungi Struktur Data LinkedList.
LinkedList
menyediakan berbagai metode yang memungkinkan kita untuk melakukan operasi yang berbeda dalam daftar tertaut. Kita akan melihat empat Operator LinkedList yang umum digunakan dalam tutorial ini:
Kita dapat menggunakan add()
metode untuk menambahkan elemen (simpul) di akhir LinkedList. Misalnya,
import java.util.LinkedList;
class Main {
public static void main(String[] args){
// create linkedlist
LinkedList<String> 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);
}
}
Keluaran
LinkedList: [Dog, Cat, Cow] Updated LinkedList: [Dog, Horse, Cat, Cow]
Pada contoh di atas, kita telah membuat LinkedList bernama hewan . Di sini, kami telah menggunakan add()
metode untuk menambahkan elemen ke hewan .
Perhatikan pernyataannya,
animals.add(1, "Horse");
Di sini, kami telah menggunakan nomor indeks parameter. Ini adalah parameter opsional yang menentukan posisi di mana elemen baru ditambahkan.
Untuk mempelajari lebih lanjut tentang menambahkan elemen ke LinkedList, kunjungi program Java untuk menambahkan elemen ke LinkedList.
get()
metode kelas LinkedList digunakan untuk mengakses elemen dari LinkedList. Misalnya,
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
LinkedList<String> 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);
}
}
Keluaran
LinkedList: [Python, Java, JavaScript] Element at index 1: Java
Pada contoh di atas, kita telah menggunakan get()
metode dengan parameter 1 . Di sini, metode mengembalikan elemen pada indeks 1 .
Kami juga dapat mengakses elemen LinkedList menggunakan iterator()
dan listIterator()
metode. Untuk mempelajari lebih lanjut, kunjungi program Java untuk mengakses elemen LinkedList.
set()
metode LinkedList
class digunakan untuk mengubah elemen LinkedList. Misalnya,
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
LinkedList<String> 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);
}
}
Keluaran
LinkedList: [Java, Python, JavaScript, Java] Updated LinkedList: [Java, Python, JavaScript, Kotlin]
Dalam contoh di atas, kita telah membuat sebuah LinkedList bernama bahasa. Perhatikan barisnya,
languages.set(3, "Kotlin");
Di sini, set()
metode mengubah elemen pada indeks 3 ke Kotlin .
remove()
metode LinkedList
class digunakan untuk menghapus elemen dari LinkedList. Misalnya,
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
LinkedList<String> 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);
}
}
Keluaran
LinkedList: [Java, Python, JavaScript, Kotlin] Removed Element: Python New LinkedList: [Java, JavaScript, Kotlin]
Di sini, remove()
metode mengambil nomor indeks sebagai parameter. Dan, menghapus elemen yang ditentukan oleh nomor indeks.
Untuk mempelajari lebih lanjut tentang menghapus elemen dari linkedlist, kunjungi program Java untuk menghapus elemen dari LinkedList..
Metode | Deskripsi |
---|---|
contains() | memeriksa apakah LinkedList berisi elemen |
indexOf() | mengembalikan indeks kemunculan elemen pertama |
lastIndexOf() | mengembalikan indeks kemunculan elemen terakhir |
clear() | menghapus semua elemen LinkedList |
iterator() | mengembalikan iterator untuk diulang melalui LinkedList |
Sejak LinkedList
class juga mengimplementasikan antarmuka Antrian dan Deque, ia juga dapat mengimplementasikan metode antarmuka ini. Berikut adalah beberapa metode yang umum digunakan:
Metode | Deskripsi |
---|---|
addFirst() | menambahkan elemen yang ditentukan di awal daftar tertaut |
addLast() | menambahkan elemen yang ditentukan di akhir daftar tertaut |
getFirst() | mengembalikan elemen pertama |
getLast() | mengembalikan elemen terakhir |
removeFirst() | menghapus elemen pertama |
removeLast() | menghapus elemen terakhir |
peek() | mengembalikan elemen pertama (kepala) dari daftar tertaut |
poll() | mengembalikan dan menghapus elemen pertama dari daftar tertaut |
offer() | menambahkan elemen yang ditentukan di akhir daftar tertaut |
import java.util.LinkedList;
import java.util.Queue;
class Main {
public static void main(String[] args) {
Queue<String> 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);
}
}
Keluaran
LinkedList: [Python, Java, C] Accessed Element: Python Removed Element: Python LinkedList after poll(): [Java, C] LinkedList after offer(): [Java, C, Swift]
import java.util.LinkedList;
import java.util.Deque;
class Main {
public static void main(String[] args){
Deque<String> 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);
}
}
Keluaran
LinkedList: [Cow] LinkedList after addFirst(): [Dog, Cow] LinkedList after addLast(): [Dog, Cow, Zebra] LinkedList after removeFirst(): [Cow, Zebra] LinkedList after removeLast(): [Cow]
Kita dapat menggunakan perulangan Java for-each untuk melakukan iterasi melalui LinkedList. Misalnya,
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
// Creating a linked list
LinkedList<String> 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(", ");
}
}
}
Keluaran
LinkedList: [Cow, Cat, Dog] Accessing linked list elements: Cow, Cat, Dog,
Baik Java ArrayList dan LinkedList
mengimplementasikan List
antarmuka Collections
kerangka. Namun, ada beberapa perbedaan di antara mereka.
LinkedList | Daftar Array |
---|---|
Menerapkan List , Queue , dan Deque antarmuka. | Menerapkan List antarmuka. |
Menyimpan 3 nilai (alamat sebelumnya , data, dan alamat berikutnya ) dalam satu posisi. | Menyimpan satu nilai dalam satu posisi. |
Menyediakan implementasi daftar tertaut ganda. | Menyediakan implementasi array yang dapat diubah ukurannya. |
Setiap kali sebuah elemen ditambahkan, prev dan next alamat diubah. | Setiap kali sebuah elemen ditambahkan, semua elemen setelah posisinya digeser. |
Untuk mengakses sebuah elemen, kita perlu melakukan iterasi dari awal hingga elemen tersebut. | Dapat mengakses elemen secara acak menggunakan indeks. |
Catatan :Kita juga dapat membuat LinkedList menggunakan antarmuka di Java. Misalnya,
// create linkedlist using List
List<String> animals1 = new LinkedList<>();
// creating linkedlist using Queue
Queue<String> animals2 = new LinkedList<>();
// creating linkedlist using Deque
Deque<String> animals3 = new LinkedList<>();
Di sini, jika LinkedList dibuat menggunakan satu antarmuka, maka kita tidak dapat menggunakan metode yang disediakan oleh antarmuka lain. Yaitu, hewan1 tidak dapat menggunakan metode khusus untuk Queue
dan Deque
antarmuka.
java
Antarmuka Antrian Java Dalam tutorial ini, kita akan belajar tentang antarmuka Java Queue dan metodenya. Queue antarmuka kerangka koleksi Java menyediakan fungsionalitas struktur data antrian. Ini memperluas Collection antarmuka. Kelas yang Menerapkan Antrian Sejak Queue adalah antarmuka, kami t
Java PriorityQueue Dalam tutorial ini, kita akan belajar tentang kelas PriorityQueue dari framework koleksi Java dengan bantuan contoh. PriorityQueue class menyediakan fungsionalitas struktur data heap. Ini mengimplementasikan antarmuka Antrian. Tidak seperti antrian normal, elemen antrian pri
Antarmuka Deque Java Dalam tutorial ini, kita akan belajar tentang antarmuka Deque, cara menggunakannya, dan metodenya. Deque antarmuka kerangka koleksi Java menyediakan fungsionalitas antrian berujung ganda. Ini memperluas Queue antarmuka. Kerja Deque Dalam antrian biasa, elemen ditambahkan dar
Java LinkedList Dalam tutorial ini, kita akan belajar tentang Java LinkedList secara detail dengan bantuan contoh. LinkedList kelas kerangka koleksi Java menyediakan fungsionalitas struktur data daftar tertaut (daftar tertaut ganda). Setiap elemen dalam daftar tertaut dikenal sebagai simpul . In