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

Daftar Tautan Java

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 . Ini terdiri dari 3 bidang:

  • Sebelumnya - menyimpan alamat elemen sebelumnya dalam daftar. Ini adalah null untuk elemen pertama
  • Berikutnya - menyimpan alamat elemen berikutnya dalam daftar. Ini adalah null untuk elemen terakhir
  • Data - menyimpan data sebenarnya

Membuat Java LinkedList

Berikut 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<>();

Contoh:Membuat LinkedList di Java

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.


Bekerja dengan Java LinkedList

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.

  • Anjing - ini adalah elemen pertama yang memegang null seperti alamat sebelumnya dan alamat Cat sebagai alamat selanjutnya
  • Kucing - ini adalah elemen kedua yang menyimpan alamat Anjing sebagai alamat sebelumnya dan alamat Sapi sebagai alamat selanjutnya
  • Sapi - ini adalah elemen terakhir yang menyimpan alamat Cat sebagai alamat sebelumnya dan null sebagai elemen berikutnya

Untuk mempelajari lebih lanjut, kunjungi Struktur Data LinkedList.


Metode Java 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:

  • Tambahkan elemen
  • Akses elemen
  • Ubah elemen
  • Hapus elemen

1. Tambahkan elemen ke LinkedList

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.


2. Akses elemen 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.


3. Ubah 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 .


4. Hapus elemen dari LinkedList

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 Lain

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

LinkedList sebagai Deque dan Antrian

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

Contoh:Java LinkedList sebagai Antrian

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]

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<>();

    // 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]

Mengulang melalui LinkedList

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,

LinkedList Vs. Daftar Array

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

  1. Operator Jawa
  2. Komentar Jawa
  3. Java untuk setiap Loop
  4. String Jawa
  5. Antarmuka Jawa
  6. Kelas Anonim Java
  7. Java mencoba-dengan-sumber daya
  8. Anotasi Jawa
  9. Pernyataan Jawa
  10. Vektor Jawa