Kelas ArrayDeque Java: Panduan untuk Pemula

Pengenalan

Hai di sana, penyihir Java masa depan! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia kelas ArrayDeque Java. Saya tahu apa yang mungkin anda fikirkan: "Deque? Adakah itu merupakan kata French yang klasik?" Walau bagaimanapun, tidak sepenuhnya! Dalam dunia pemrograman, deque (disebut "deck") merupakan rakitan untuk giliran berganda. Ia seperti rakitan di atas rakit penyelam di atas rakit penyelam di mana orang boleh bergabung atau meninggalkan dari kedua-dua ujung. Keren, kan?

Java -  ArrayDeque

ArrayDeque adalah implementasi Java bagi antara muka Deque, dan ia adalah alat yang kuat dalam rakit penyimpanan dan manipulasi data anda. Jadi, ikutlah saya, dan mari kita penyelam!

Deklarasi Kelas ArrayDeque

Sebelum kita mula menggunakan ArrayDeque, kita perlu tahu bagaimana untuk mendeklarasikannya. Ia benar-benar mudah. Ini cara untuk melakukannya:

import java.util.ArrayDeque;

ArrayDeque<Integer> numbers = new ArrayDeque<Integer>();

Dalam contoh ini, kita membuat ArrayDeque yang akan menyimpan objek Integer. Tetapi jangan khawatir, ArrayDeque adalah fleksibel - anda boleh menggunakannya dengan jenis objek apa pun!

Konstruktor Kelas ArrayDeque

ArrayDeque datang dengan tiga konstruktor. Pikirkan konstruktor sebagai cara yang berbeza untuk membangun deque anda:

  1. ArrayDeque(): Ini membuat deque kosong dengan kapasiti awal 16 elemen.
  2. ArrayDeque(int numElements): Ini membuat deque dengan kapasiti awal yang dinyatakan.
  3. ArrayDeque(Collection<? extends E> c): Ini membuat deque yang mengandungi elemen koleksi yang dinyatakan.

Mari kita lihat ini dalam tindakan:

// Konstruktor default
ArrayDeque<String> fruits1 = new ArrayDeque<>();

// Konstruktor dengan kapasiti awal
ArrayDeque<String> fruits2 = new ArrayDeque<>(20);

// Konstruktor dengan koleksi
ArrayList<String> fruitList = new ArrayList<>();
fruitList.add("Apple");
fruitList.add("Banana");
ArrayDeque<String> fruits3 = new ArrayDeque<>(fruitList);

Method Kelas ArrayDeque

Sekarang, mari kita lihat beberapa method yang paling umum digunakan dalam ArrayDeque. Saya suka untuk membayangkan method ini sebagai trik yang berbeza yang rakit penyimpanan anda dapat melakukan.

Method Keterangan
addFirst(E e) Menambahkan elemen ke depan deque
addLast(E e) Menambahkan elemen ke belakang deque
offerFirst(E e) Menambahkan elemen ke depan deque (kembali nilai boolean)
offerLast(E e) Menambahkan elemen ke belakang deque (kembali nilai boolean)
removeFirst() Menghapus dan mengembalikan elemen pertama
removeLast() Menghapus dan mengembalikan elemen terakhir
pollFirst() Menghapus dan mengembalikan elemen pertama (atau null jika kosong)
pollLast() Menghapus dan mengembalikan elemen terakhir (atau null jika kosong)
getFirst() Mengembalikan elemen pertama tanpa menghapusnya
getLast() Mengembalikan elemen terakhir tanpa menghapusnya
peekFirst() Mengembalikan elemen pertama tanpa menghapusnya (atau null jika kosong)
peekLast() Mengembalikan elemen terakhir tanpa menghapusnya (atau null jika kosong)

Contoh Menambahkan dan Menghapus Elemen dari ArrayDeque

Mari kita gunakan pengetahuan baru kita dengan contoh praktikal. Bayangkan kita menguruskan senarai tugas di mana tugas dapat ditambahkan atau dihapus dari kedua-dua ujung.

import java.util.ArrayDeque;

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

// Menambahkan tugas
tasks.addFirst("Bangun tidur");
tasks.addLast("Gosok gigi");
tasks.offerFirst("Set rakit penyelam");
tasks.offerLast("Pergi tidur");

System.out.println("Tugas saat ini: " + tasks);

// Menghapus tugas
String firstTask = tasks.removeFirst();
String lastTask = tasks.removeLast();

System.out.println("Tugas pertama yang diselesaikan: " + firstTask);
System.out.println("Tugas terakhir yang diselesaikan: " + lastTask);
System.out.println("Tugas yang tersisa: " + tasks);

// Melihat tugas
String nextTask = tasks.peekFirst();
String finalTask = tasks.peekLast();

System.out.println("Tugas berikutnya: " + nextTask);
System.out.println("Tugas akhir: " + finalTask);
}
}

Mari kita pecahkan ini:

  1. Kita mula dengan membuat ArrayDeque yang dipanggil tasks.
  2. Kita menambahkan tugas menggunakan addFirst(), addLast(), offerFirst(), dan offerLast(). Perhatikan bagaimana kita boleh menambahkan tugas ke kedua-dua ujung deque.
  3. Kita kemudian menghapus tugas dari kedua-dua ujung menggunakan removeFirst() dan removeLast().
  4. Akhirnya, kita melihat tugas pertama dan terakhir tanpa menghapusnya menggunakan peekFirst() dan peekLast().

Output

Apabila anda menjalankan kode ini, anda akan lihat seperti ini:

Tugas saat ini: [Set rakit penyelam, Bangun tidur, Gosok gigi, Pergi tidur]
Tugas pertama yang diselesaikan: Set rakit penyelam
Tugas terakhir yang diselesaikan: Pergi tidur
Tugas yang tersisa: [Bangun tidur, Gosok gigi]
Tugas berikutnya: Bangun tidur
Tugas akhir: Gosok gigi

Dan itu adalah! Anda baru saja membuat, manipulasi, dan menjelajahi ArrayDeque. cukup keren, kan?

Ingat, praktek membuat perfect. Cobalah untuk membuat ArrayDeque anda sendiri dan eksperimen dengan method yang berbeza. Anda boleh membuat pengurus daftar putar, pelacak riwayat pelayar, atau bahkan sistem undo/redo yang sederhana!

ArrayDeque adalah seperti teman yang baik - selalu ada apabila anda memerlukannya, sedia membantu dari kedua-dua sisi. Jadi jangan malu-malu, kenalilah lebih baik, dan tidak lama lagi anda akan deque-ing seperti pro!

Happy coding, pemimpin Java masa depan! ??

Credits: Image by storyset