java
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.
ArrayDeque
class mengimplementasikan dua antarmuka ini:
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<>();
ArrayDeque
class menyediakan implementasi untuk semua metode yang ada di Queue
dan Deque
antarmuka.
1. Tambahkan elemen menggunakan add(), addFirst() dan addLast()
add()
- menyisipkan elemen yang ditentukan di akhir deque arrayaddFirst()
- menyisipkan elemen yang ditentukan di awal deque arrayaddLast()
- menyisipkan yang ditentukan di akhir deque array (setara dengan add()
)
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()
offer()
- menyisipkan elemen yang ditentukan di akhir deque arrayofferFirst()
- menyisipkan elemen yang ditentukan di awal deque arrayofferLast()
- menyisipkan elemen yang ditentukan di akhir deque array
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
add()
metode akan mengeluarkan pengecualianoffer()
metode mengembalikan false
1. Akses elemen menggunakan getFirst() dan getLast()
getFirst()
- mengembalikan elemen pertama dari deque arraygetLast()
- mengembalikan elemen terakhir dari deque array
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()
peek()
- mengembalikan elemen pertama dari deque arraypeekFirst()
- mengembalikan elemen pertama dari deque array (setara dengan peek()
)peekLast()
- mengembalikan elemen terakhir dari deque array
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
.
1. Hapus elemen menggunakan metode remove(), removeFirst(), removeLast()
remove()
- mengembalikan dan menghapus elemen dari elemen pertama deque arrayremove(element)
- mengembalikan dan menghapus elemen tertentu dari kepala deque arrayremoveFirst()
- mengembalikan dan menghapus elemen pertama dari deque array (setara dengan remove()
)removeLast()
- mengembalikan dan menghapus elemen terakhir dari deque array
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()
poll()
- mengembalikan dan menghapus elemen pertama dari deque arraypollFirst()
- mengembalikan dan menghapus elemen pertama dari deque array (setara dengan poll()
)pollLast()
- mengembalikan dan menghapus elemen terakhir dari deque array
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: []
iterator()
- mengembalikan iterator yang dapat digunakan untuk mengulangi deque arraydescendingIterator()
- mengembalikan iterator yang dapat digunakan untuk mengulangi deque array dalam urutan terbalik
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 | 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. |
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.
push()
- menambahkan elemen ke bagian atas tumpukanpeek()
- mengembalikan elemen dari atas tumpukanpop()
- mengembalikan dan menghapus elemen dari atas tumpukanMisalnya,
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
Keduanya ArrayDeque
dan Java LinkedList mengimplementasikan Deque
antarmuka. Namun, ada beberapa perbedaan di antara mereka.
LinkedList
mendukung null
elemen, sedangkan ArrayDeque
tidak.LinkedList
membutuhkan lebih banyak penyimpanan daripada ArrayDeque
.ArrayDeque
cenderung lebih cepat daripada LinkedList
.java
Antarmuka Deque Java Dalam tutorial ini, kita akan belajar tentang antarmuka Deque, cara menggunakannya, dan metodenya. Deque antarmuka kerangka koleksi Java menyediakan fungsionalitas antrian berujung ganda. Ini memperluas Queue antarmuka. Kerja Deque Dalam antrian biasa, elemen ditambahkan dar
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 . In
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 antr
Antrian Pemblokiran Java Dalam tutorial ini, kita akan belajar tentang antarmuka Java BlockingQueue dan metodenya. BlockingQueue antarmuka Java Collections framework memperluas Queue antarmuka. Ini memungkinkan operasi apa pun untuk menunggu hingga berhasil dilakukan. Misalnya, jika kita ingin me