Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Java LinkedList: Panduan Lengkap dengan Contoh

Java LinkedList

Temukan cara memanfaatkan LinkedList Java untuk manipulasi data yang efisien, lengkap dengan contoh kode praktis dan wawasan praktik terbaik.

Kelas LinkedList dalam Java Collections Framework mengimplementasikan daftar berambilan ganda. Setiap elemen, atau node, memiliki tiga bidang:


Membuat Java LinkedList

Buat instance LinkedList dengan tipe elemen tertentu:

LinkedList<Type> list = new LinkedList<>();

Contoh:

// Integer list LinkedList<Integer> numbers = new LinkedList<>(); // String list LinkedList<String> words = new LinkedList<>();

Contoh: Membuat LinkedList di Java

import java.util.LinkedList; class Main { public static void main(String[] args){ LinkedList<String> animals = new LinkedList<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Cow"); System.out.println("LinkedList: " + animals); } }

Output

LinkedList: [Dog, Cat, Cow]

Kode ini menunjukkan LinkedList dasar bernama animals yang diisi dengan tiga elemen melalui add().


Cara Kerja Java LinkedList

Berbeda dengan array, node tersebar dalam memori dan saling terhubung. Diagram di bawah ini menggambarkan tiga node dan koneksinya.

Java LinkedList: Panduan Lengkap dengan Contoh

Untuk wawasan lebih dalam, lihat artikel Linked List.


Metode Utama LinkedList

Berikut adalah operasi yang paling sering digunakan:


1. Menambahkan Elemen

Gunakan add() untuk menambahkan node, secara opsional dengan menentukan indeks:

import java.util.LinkedList; class Main { public static void main(String[] args){ LinkedList<String> animals = new LinkedList<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Cow"); System.out.println("LinkedList: " + animals); animals.add(1, "Horse"); System.out.println("Updated LinkedList: " + animals); } }

Output

LinkedList: [Dog, Cat, Cow] Updated LinkedList: [Dog, Horse, Cat, Cow]

add() kedua menyisipkan "Horse" pada indeks 1, menggeser elemen berikutnya.


2. Mengakses Elemen

Ambil item berdasarkan indeks dengan get():

import java.util.LinkedList; class Main { public static void main(String[] args){ LinkedList<String> languages = new LinkedList<>(); languages.add("Python"); languages.add("Java"); languages.add("JavaScript"); System.out.println("LinkedList: " + languages); String str = languages.get(1); System.out.print("Element at index 1: " + str); } }

Output

LinkedList: [Python, Java, JavaScript] Element at index 1: Java

Iterasi juga dapat dilakukan melalui iterator() atau listIterator() untuk penelusuran lanjutan.


3. Memperbarui Elemen

Ganti elemen pada indeks tertentu menggunakan set():

import java.util.LinkedList; class Main { public static void main(String[] args){ LinkedList<String> languages = new LinkedList<>(); languages.add("Java"); languages.add("Python"); languages.add("JavaScript"); languages.add("Java"); System.out.println("LinkedList: " + languages); languages.set(3, "Kotlin"); System.out.println("Updated LinkedList: " + languages); } }

Output

LinkedList: [Java, Python, JavaScript, Java] Updated LinkedList: [Java, Python, JavaScript, Kotlin]

4. Menghapus Elemen

Hapus elemen berdasarkan indeks dengan remove():

import java.util.LinkedList; class Main { public static void main(String[] args){ LinkedList<String> languages = new LinkedList<>(); languages.add("Java"); languages.add("Python"); languages.add("JavaScript"); languages.add("Kotlin"); System.out.println("LinkedList: " + languages); String removed = languages.remove(1); System.out.println("Removed Element: " + removed); System.out.println("Updated LinkedList: " + languages); } }

Output

LinkedList: [Java, Python, JavaScript, Kotlin] Removed Element: Python New LinkedList: [Java, JavaScript, Kotlin]

Metode Lainnya yang Berguna

MetodeDeskripsi
contains()Memeriksa apakah nilai ada
indexOf()Indeks kemunculan pertama
lastIndexOf()Indeks kemunculan terakhir
clear()Menghapus semua elemen
iterator()Menyediakan Iterator

LinkedList sebagai Queue dan Deque

Karena LinkedList mengimplementasikan Queue dan Deque, ia mendukung operasi FIFO dan LIFO. Metode umum meliputi:

MetodeDeskripsi
addFirst()Tambah di head
addLast()Tambah di tail
getFirst()Lihat head
getLast()Lihat tail
removeFirst()Pop head
removeLast()Pop tail
peek()Lihat head tanpa menghapus
poll()Ambil & hapus head
offer()Enqueue di tail

Contoh: LinkedList sebagai Queue

import java.util.LinkedList; import java.util.Queue; class Main { public static void main(String[] args){ Queue<String> languages = new LinkedList<>(); languages.add("Python"); languages.add("Java"); languages.add("C"); System.out.println("LinkedList: " + languages); String first = languages.peek(); System.out.println("Accessed Element: " + first); String removed = languages.poll(); System.out.println("Removed Element: " + removed); System.out.println("LinkedList after poll(): " + languages); 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]

Contoh: LinkedList sebagai Deque

import java.util.LinkedList; import java.util.Deque; class Main { public static void main(String[] args){ Deque<String> animals = new LinkedList<>(); animals.add("Cow"); System.out.println("LinkedList: " + animals); animals.addFirst("Dog"); System.out.println("LinkedList after addFirst(): " + animals); animals.addLast("Zebra"); System.out.println("LinkedList after addLast(): " + animals); animals.removeFirst(); System.out.println("LinkedList after removeFirst(): " + animals); 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]

Melakukan Iterasi pada LinkedList

Loop for yang ditingkatkan menawarkan cara ringkas untuk menelusuri elemen:

import java.util.LinkedList; class Main { public static void main(String[] args){ LinkedList<String> animals = new LinkedList<>(); animals.add("Cow"); animals.add("Cat"); animals.add("Dog"); System.out.println("LinkedList: " + animals); System.out.println("Accessing linked list elements:"); for(String animal: animals){ System.out.print(animal + ", "); } } }

Output

LinkedList: [Cow, Cat, Dog] Accessing linked list elements: Cow, Cat, Dog,

LinkedList vs. ArrayList

Kedua kelas mengimplementasikan List, namun berbeda dalam karakteristik performa:

LinkedListArrayList
Implements List, Queue, DequeImplements List
Node stores prev, data, nextSingle element per array slot
Doubly‑linked structureResizable array
Insertions/ deletions are O(1) when position knownInsertions after an index require shifting O(n)
Random access requires traversal O(n)Direct index access O(1)

Catatan: Anda dapat membuat instance LinkedList melalui salah satu antarmukanya:

// via List List<String> animals1 = new LinkedList<>(); // via Queue Queue<String> animals2 = new LinkedList<>(); // via Deque Deque<String> animals3 = new LinkedList<>();

Saat menggunakan referensi antarmuka, hanya metode yang didefinisikan oleh antarmuka tersebut yang tersedia.


java

  1. Menguasai Operator Java: Tipe, Sintaks, & Contoh Praktis
  2. Komentar Java: Tipe, Penggunaan, dan Best Practices
  3. Menguasai Java Enhanced For Loop: Sintaks, Contoh, dan Best Practices
  4. Menguasai String Java: Pembuatan, Metode, dan Best Practices
  5. Menguasai Antarmuka Java: Konsep, Implementasi, dan Praktik Terbaik
  6. Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
  7. Menguasai Java Try-with-Resources: Manajemen Sumber Daya Otomatis Dijelaskan
  8. Anotasi Java Dijelaskan: Jenis, Penempatan, dan Contoh Praktis
  9. Pernyataan Java: Panduan Praktis untuk Mendeteksi Bug dan Memastikan Keandalan Kode
  10. Memahami Java Vector: Penggunaan, Fitur, dan Perbandingan dengan ArrayList