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

Menguasai Java ArrayDeque: Panduan Lengkap & Implementasi Stack

Java ArrayDeque

Panduan ini menjelaskan kelas ArrayDeque, metodenya, dan contoh praktis—termasuk cara menggunakannya sebagai stack.

Di Java, ArrayDeque mengimplementasikan struktur data queue dan deque yang didukung oleh array yang dapat diubah ukurannya.


Interfaces Implemented by ArrayDeque

Kelas ArrayDeque mengimplementasikan antarmuka berikut:

Menguasai Java ArrayDeque: Panduan Lengkap & Implementasi Stack


Membuat ArrayDeque

Pertama impor paket:

import java.util.ArrayDeque;

Buat instance deque yang diketik:

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

Contoh:

// String deque ArrayDeque<String> animals = new ArrayDeque<>(); // Integer deque ArrayDeque<Integer> ages = new ArrayDeque<>();

Metode Utama ArrayDeque

Menyisipkan Elemen

1. Menggunakan add(), addFirst(), addLast()

Catatan: Jika deque penuh, metode ini melempar IllegalStateException.

ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.addFirst("Cat"); animals.addLast("Horse"); System.out.println("ArrayDeque: " + animals);

Output

ArrayDeque: [Cat, Dog, Horse]

2. Menggunakan offer(), offerFirst(), offerLast()

Catatan: Metode ini mengembalikan false jika deque penuh.

ArrayDeque<String> animals = new ArrayDeque<>(); animals.offer("Dog"); animals.offerFirst("Cat"); animals.offerLast("Horse"); System.out.println("ArrayDeque: " + animals);

Output

ArrayDeque: [Cat, Dog, Horse]

Mengakses Elemen

1. getFirst() dan getLast()

Catatan: Melempar NoSuchElementException jika deque kosong.

ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayDeque: " + animals); System.out.println("First Element: " + animals.getFirst()); System.out.println("Last Element: " + animals.getLast());

Output

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

2. peek(), peekFirst(), peekLast()

ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayDeque: " + animals); System.out.println("Head Element: " + animals.peek()); System.out.println("First Element: " + animals.peekFirst()); System.out.println("Last Element: " + animals.peekLast());

Output

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

Catatan: Jika deque kosong, peek() dan sekawatnya mengembalikan null daripada melempar pengecualian.

Menghapus Elemen

1. remove(), removeFirst(), removeLast()

Catatan: Melempar NoSuchElementException jika deque kosong atau jika remove(o) tidak dapat menemukan o.

ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Cow"); animals.add("Horse"); System.out.println("ArrayDeque: " + animals); System.out.println("Removed Element: " + animals.remove()); System.out.println("New ArrayDeque: " + animals); System.out.println("Removed First Element: " + animals.removeFirst()); System.out.println("Removed Last Element: " + animals.removeLast());

Output

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

2. poll(), pollFirst(), pollLast()

ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Cow"); animals.add("Horse"); System.out.println("ArrayDeque: " + animals); System.out.println("Removed Element: " + animals.poll()); System.out.println("New ArrayDeque: " + animals); System.out.println("Removed First Element: " + animals.pollFirst()); System.out.println("Removed Last Element: " + animals.pollLast());

Output

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

3. clear()

Mengkosongkan seluruh deque.

ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.println("ArrayDeque: " + animals); animals.clear(); System.out.println("New ArrayDeque: " + animals);

Output

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

Melakukan Iterasi pada ArrayDeque

ArrayDeque<String> animals = new ArrayDeque<>(); animals.add("Dog"); animals.add("Cat"); animals.add("Horse"); System.out.print("ArrayDeque: "); Iterator<String> it = animals.iterator(); while(it.hasNext()) { System.out.print(it.next() + ", "); } System.out.print("\nArrayDeque in reverse order: "); Iterator<String> rev = animals.descendingIterator(); while(rev.hasNext()) { System.out.print(rev.next() + ", "); }

Output

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

Metode Umum Lainnya

Metode Deskripsi
element() Mengambil tanpa menghapus head.
contains(Object o) Memeriksa keberadaan o; mengembalikan true jika ditemukan.
size() Jumlah elemen dalam deque.
toArray() Mengonversi deque ke array.
clone() Membuat salin dangkal dari deque.

Menggunakan ArrayDeque sebagai Stack

Untuk perilaku LIFO, ArrayDeque lebih disukai daripada Stack karena performa yang lebih baik dan tanpa overhead sinkronisasi kode lama.

Metode gaya stack:

ArrayDeque<String> stack = new ArrayDeque<>(); stack.push("Dog"); stack.push("Cat"); stack.push("Horse"); System.out.println("Stack: " + stack); System.out.println("Accessed Element: " + stack.peek()); System.out.println("Removed Element: " + stack.pop());

Output

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

ArrayDeque vs LinkedList

Kedua kelas mengimplementasikan Deque, namun berbeda:


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