Các Queue interface của collections framework trong Java cung cấp các chức năng của cấu trúc dữ liệu queue. Nó là một class trong Collection interface.
Nội dung chính
1. Các class triển khai Queue
Vì Queue là một interface nên chúng ta không thể triển khai trực tiếp nó được.
Để sử dụng các chức năng của Queue, chúng ta cần sử dụng các class triển khai nó, bao gồm:
• Class ArrayDeque
• Class LinkedList
• Class PriorityQueue
2. Các interface trong Queue
Các Queue interface cũng bao gồm những subinterface khác nhau, đó là:
• Deque
3. Làm việc với cấu trúc dữ liệu queue
Trong queue, các phần tử được lưu trữ và truy cập theo cách First In, First Out. Đó là, các phần tử được thêm vào trước thì sẽ bị loại bỏ trước.
4. Làm thế nào để sử dụng Queue?
Trong Java, chúng ta phải nhập gói java.util.Queue để sử dụng Queue.
// LinkedList implementation of Queue
Queue<String> animal1 = new LinkedList<>();
// Array implementation of Queue
Queue<String> animal2 = new ArrayDeque<>();
// Priority Queue implementation of Queue
Queue<String> animal 3 = new PriorityQueue<>();
Ở đây, chúng ta đã tạo ra các đối tượng animal1 , animal2 và animal 3 của các class LinkedList, ArrayDeque và PriorityQueue tương ứng. Những đối tượng này có thể sử dụng các chức năng của Queue interface.
5. Các hàm trong queue
Queue interface bao gồm tất cả các hàm của Collection interface. Đó là bởi vì Collection là một interface cha của Queue.
Một số hàm thường được sử dụng trong Queue interface là:
• add() – Chèn phần tử đã chỉ định vào queue. Nếu thực hiện thành công, hàm add() trả về true, còn không thì nó sẽ ném ra một ngoại lệ (throw an exception).
• Offer() – Chèn phần tử đã chỉ định vào queue. Nếu thực hiện thành công, hàm offer() trả về true, nếu không nó sẽ trả về false.
• element() – Trả về phần tử đầu tiên của queue. Nếu queue trống sẽ ném một ngoại lệ.
• peek() – Trả về phần tử đầu tiên của queue. Nếu queue trống thì trả về null.
• remove() – Trả về và xóa phần tử đầu của queue. Nếu queue trống sẽ ném ra một ngoại lệ (throw an exception).
• poll() – Trả về và loại bỏ phần tử đầu của queue. Nếu queue trống sẽ trả về null.
6. Triển khai queue interface
6.1 Triển khai class LinkedList
/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: cafedevn@gmail.com
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
import java.util.Queue;
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
// Creating Queue using the LinkedList class
Queue<Integer> numbers = new LinkedList<>();
// offer elements to the Queue
numbers.offer(1);
numbers.offer(2);
numbers.offer(3);
System.out.println("Queue: " + numbers);
// Access elements of the Queue
int accessedNumber = numbers.peek();
System.out.println("Accessed Element: " + accessedNumber);
// Remove elements from the Queue
int removedNumber = numbers.poll();
System.out.println("Removed Element: " + removedNumber);
System.out.println("Updated Queue: " + numbers);
}
}
Kết quả
Queue: [1, 2, 3]
Accessed Element: 1
Removed Element: 1
Updated Queue: [2, 3]
Để tìm hiểu thêm, hãy truy cập Class LinkedList trong Java .
6.2 Triển khai class PriorityQueue
/**
* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
*
* @author cafedevn
* Contact: cafedevn@gmail.com
* Fanpage: https://www.facebook.com/cafedevn
* Instagram: https://instagram.com/cafedevn
* Twitter: https://twitter.com/CafedeVn
* Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
import java.util.Queue;
import java.util.PriorityQueue;
class Main {
public static void main(String[] args) {
// Creating Queue using the PriorityQueue class
Queue<Integer> numbers = new PriorityQueue<>();
// offer elements to the Queue
numbers.offer(5);
numbers.offer(1);
numbers.offer(2);
System.out.println("Queue: " + numbers);
// Access elements of the Queue
int accessedNumber = numbers.peek();
System.out.println("Accessed Element: " + accessedNumber);
// Remove elements from the Queue
int removedNumber = numbers.poll();
System.out.println("Removed Element: " + removedNumber);
System.out.println("Updated Queue: " + numbers);
}
}
Kết quả
Queue: [1, 5, 2]
Accessed Element: 1
Removed Element: 1
Updated Queue: [2, 5]
Để tìm hiểu thêm, hãy truy cập Class PriorityQueue trong Java.