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?
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:
-
ArrayDeque()
: Ini membuat deque kosong dengan kapasiti awal 16 elemen. -
ArrayDeque(int numElements)
: Ini membuat deque dengan kapasiti awal yang dinyatakan. -
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:
- Kita mula dengan membuat ArrayDeque yang dipanggil
tasks
. - Kita menambahkan tugas menggunakan
addFirst()
,addLast()
,offerFirst()
, danofferLast()
. Perhatikan bagaimana kita boleh menambahkan tugas ke kedua-dua ujung deque. - Kita kemudian menghapus tugas dari kedua-dua ujung menggunakan
removeFirst()
danremoveLast()
. - Akhirnya, kita melihat tugas pertama dan terakhir tanpa menghapusnya menggunakan
peekFirst()
danpeekLast()
.
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