[Tự học Java] Queue interface trong Java » https://final-blade.com

Các Queue interface của collections framework trong Java cung ứng những công dụng của cấu trúc tài liệu queue. Nó là một class trong Collection interface .

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 những tính năng của Queue, tất cả chúng ta cần sử dụng những class tiến hành nó, gồm có :
• Class ArrayDeque
• Class LinkedList
• Class PriorityQueue

2. Các interface trong Queue

Các Queue interface cũng gồm có những subinterface khác nhau, đó là :
• Deque
• BlockingQueue
• BlockingDeque

3. Làm việc với cấu trúc dữ liệu queue

Trong queue, những thành phần được tàng trữ và truy vấn theo cách First In, First Out. Đó là, những thành phần được thêm vào trước thì sẽ bị vô hiệu trước .

4. Làm thế nào để sử dụng Queue?

Trong Java, tất cả chúng ta phải nhập gói java.util. Queue để sử dụng Queue .


// LinkedList implementation of Queue
Queue animal1 = new LinkedList<>();

// Array implementation of Queue
Queue animal2 = new ArrayDeque<>();

// Priority Queue implementation of Queue
Queue 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 gồm có toàn bộ những hàm của Collection interface. Đó là chính do 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 thành phần đã chỉ định vào queue. Nếu triển khai thành công xuất sắc, 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 thành phần đã chỉ định vào queue. Nếu thực thi thành công xuất sắc, hàm offer ( ) trả về true, nếu không nó sẽ trả về false .
• element ( ) – Trả về thành phần tiên phong của queue. Nếu queue trống sẽ ném một ngoại lệ .
• peek ( ) – Trả về thành phần tiên phong của queue. Nếu queue trống thì trả về null .
• remove ( ) – Trả về và xóa thành phần đầ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à vô hiệu thành phần đầ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: [email protected]
* 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 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 và khám phá thêm, hãy truy vấn 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: [email protected]
* 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 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.

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!