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

Java ArrayDeque

Java ArrayDeque

Dalam tutorial ini, kita akan belajar tentang kelas ArrayDeque dan metodenya dengan bantuan contoh. Selain itu, kita akan belajar menggunakan deque array untuk mengimplementasikan tumpukan.

Di Java, kita bisa menggunakan ArrayDeque class untuk mengimplementasikan struktur data antrian dan deque menggunakan array.


Antarmuka yang diimplementasikan oleh ArrayDeque

ArrayDeque class mengimplementasikan dua antarmuka ini:


Membuat ArrayDeque

Untuk membuat deque array, kita harus mengimpor java.util.ArrayDeque paket.

Berikut adalah cara membuat deque array di Java:

ArrayDeque<Type> animal = new ArrayDeque<>();

Di sini, Ketik menunjukkan jenis deque array. Misalnya,

// Creating String type ArrayDeque
ArrayDeque<String> animals = new ArrayDeque<>();

// Creating Integer type ArrayDeque
ArrayDeque<Integer> age = new ArrayDeque<>();

Metode ArrayDeque

ArrayDeque class menyediakan implementasi untuk semua metode yang ada di Queue dan Deque antarmuka.


Sisipkan Elemen ke Deque

1. Tambahkan elemen menggunakan add(), addFirst() dan addLast()

Catatan: Jika deque array penuh, semua metode ini add() , addFirst() dan addLast() melempar IllegalStateException .

Misalnya,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();

        // Using add()
        animals.add("Dog");

        // Using addFirst()
        animals.addFirst("Cat");

        // Using addLast()
        animals.addLast("Horse");
        System.out.println("ArrayDeque: " + animals);
    }
}

Keluaran

ArrayDeque: [Cat, Dog, Horse]

2. Sisipkan elemen menggunakan offer(), offerFirst() dan offerLast()

Catatan: offer() , offerFirst() dan offerLast() mengembalikan true jika elemen berhasil dimasukkan; jika deque array penuh, metode ini mengembalikan false .

Misalnya,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        // Using offer()
        animals.offer("Dog");

        // Using offerFirst()
        animals.offerFirst("Cat");

        // Using offerLast()
        animals.offerLast("Horse");
        System.out.println("ArrayDeque: " + animals);
    }
}

Keluaran

ArrayDeque: [Cat, Dog, Horse]

Catatan: Jika deque array penuh


Akses Elemen ArrayDeque

1. Akses elemen menggunakan getFirst() dan getLast()

Catatan: Jika deque array kosong, getFirst() dan getLast() melempar NoSuchElementException .

Misalnya,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayDeque: " + animals);

        // Get the first element
        String firstElement = animals.getFirst();
        System.out.println("First Element: " + firstElement);

        // Get the last element
        String lastElement = animals.getLast();
        System.out.println("Last Element: " + lastElement);
    }
}

Keluaran

ArrayDeque: [Dog, Cat, Horse]
First Element: Dog
Last Element: Horse

2. Akses elemen menggunakan metode peek(), peekFirst() dan peekLast()

Misalnya,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayDeque: " + animals);

        // Using peek()
        String element = animals.peek();
        System.out.println("Head Element: " + element);

        // Using peekFirst()
        String firstElement = animals.peekFirst();
        System.out.println("First Element: " + firstElement);

        // Using peekLast
        String lastElement = animals.peekLast();
        System.out.println("Last Element: " + lastElement);
    }
}

Keluaran

ArrayDeque: [Dog, Cat, Horse]
Head Element: Dog
First Element: Dog
Last Element: Horse

Catatan: Jika deque array kosong, peek() , peekFirst() dan getLast() melempar NoSuchElementException .


Hapus Elemen ArrayDeque

1. Hapus elemen menggunakan metode remove(), removeFirst(), removeLast()

Catatan: Jika deque array kosong, remove() , removeFirst() dan removeLast() metode melempar pengecualian. Juga, remove(element) melempar pengecualian jika elemen tidak ditemukan.

Misalnya,

import java.util.ArrayDeque;

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

        // Using remove()
        String element = animals.remove();
        System.out.println("Removed Element: " + element);

        System.out.println("New ArrayDeque: " + animals);

        // Using removeFirst()
        String firstElement = animals.removeFirst();
        System.out.println("Removed First Element: " + firstElement);

        // Using removeLast()
        String lastElement = animals.removeLast();
        System.out.println("Removed Last Element: " + lastElement);
    }
}

Keluaran

ArrayDeque: [Dog, Cat, Cow, Horse]
Removed Element: Dog
New ArrayDeque: [Cat, Cow, Horse]
Removed First Element: Cat
Removed Last Element: Horse

2. Hapus elemen menggunakan metode poll(), pollFirst() dan pollLast()

Catatan: Jika deque array kosong, poll() , pollFirst() dan pollLast() mengembalikan null jika elemen tidak ditemukan.

Misalnya,

import java.util.ArrayDeque;

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

        // Using poll()
        String element = animals.poll();
        System.out.println("Removed Element: " + element);
        System.out.println("New ArrayDeque: " + animals);

        // Using pollFirst()
        String firstElement = animals.pollFirst();
        System.out.println("Removed First Element: " + firstElement);

        // Using pollLast()
        String lastElement = animals.pollLast();
        System.out.println("Removed Last Element: " + lastElement);
    }
}

Keluaran

ArrayDeque: [Dog, Cat, Cow, Horse]
Removed Element: Dog
New ArrayDeque: [Cat, Cow, Horse]
Removed First Element: Cat
Removed Last Element: Horse

3. Hapus Elemen:menggunakan metode clear()

Untuk menghapus semua elemen dari deque array, kami menggunakan clear() metode. Misalnya,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayDeque: " + animals);

        // Using clear()
        animals.clear();

        System.out.println("New ArrayDeque: " + animals);
    }
}

Keluaran

ArrayDeque: [Dog, Cat, Horse]
New ArrayDeque: []

Mengulang ArrayDeque

Untuk menggunakan metode ini, kita harus mengimpor java.util.Iterator kemasan. Misalnya,

import java.util.ArrayDeque;
import java.util.Iterator;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> animals= new ArrayDeque<>();
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");

        System.out.print("ArrayDeque: ");

        // Using iterator()
        Iterator<String> iterate = animals.iterator();
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }

        System.out.print("\nArrayDeque in reverse order: ");
        // Using descendingIterator()
        Iterator<String> desIterate = animals.descendingIterator();
        while(desIterate.hasNext()) {
            System.out.print(desIterate.next());
            System.out.print(", ");
        }
    }
}

Keluaran

ArrayDeque: [Dog, Cat, Horse]
ArrayDeque in reverse order: [Horse, Cat, Dog]

Metode Lain

Metode Deskripsi
element() Mengembalikan elemen dari kepala deque array.
contains(element) Mencari deque array untuk elemen yang ditentukan.
Jika elemen ditemukan, ia mengembalikan true , jika tidak mengembalikan false .
size() Mengembalikan panjang deque array.
toArray() Mengonversi deque array menjadi array dan mengembalikannya.
clone() Membuat salinan deque array dan mengembalikannya.

ArrayDeque sebagai Tumpukan

Untuk menerapkan LIFO (Masuk Terakhir, Keluar Pertama) tumpukan di Jawa, disarankan untuk menggunakan deque di atas kelas Stack. ArrayDeque kelas kemungkinan akan lebih cepat daripada Stack kelas.

ArrayDeque menyediakan metode berikut yang dapat digunakan untuk mengimplementasikan tumpukan.

Misalnya,

import java.util.ArrayDeque;

class Main {
    public static void main(String[] args) {
        ArrayDeque<String> stack = new ArrayDeque<>();

        // Add elements to stack
        stack.push("Dog");
        stack.push("Cat");
        stack.push("Horse");
        System.out.println("Stack: " + stack);

        // Access element from top of stack
        String element = stack.peek();
        System.out.println("Accessed Element: " + element);

        // Remove elements from top of stack
        String remElement = stack.pop();
        System.out.println("Removed element: " + remElement);
    }
}

Keluaran

Stack: [Horse, Cat, Dog]
Accessed Element: Horse
Removed Element: Horse

ArrayDeque Vs. Kelas LinkedList

Keduanya ArrayDeque dan Java LinkedList mengimplementasikan Deque antarmuka. Namun, ada beberapa perbedaan di antara mereka.


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