Rumah > Java > javaTutorial > teks badan

Aplikasi Queue dalam Java

WBOY
Lepaskan: 2024-02-18 15:52:23
asal
773 orang telah melayarinya

Aplikasi Queue dalam Java

Penggunaan Queue dalam Java

Di Jawa, Queue (queue) ialah struktur data yang biasa digunakan yang mengikut prinsip masuk dahulu, keluar dahulu (FIFO). Baris gilir boleh digunakan untuk melaksanakan baris gilir mesej, penjadualan tugas dan senario lain, dan boleh mengurus susunan dan pemprosesan data dengan baik. Artikel ini akan memperkenalkan penggunaan Queue dan memberikan contoh kod khusus.

  1. Definisi baris gilir dan kaedah biasa

Di Java, Queue ialah antara muka dalam Rangka Kerja Koleksi Java, terletak di bawah pakej java.util. Baris mewarisi antara muka java.util.Collection dan menambah beberapa kaedah khusus baris gilir berdasarkannya.

Kaedah antara muka Baris yang biasa digunakan termasuk:

  • tambah(elemen): Masukkan elemen yang ditentukan ke penghujung baris gilir Jika baris gilir penuh, pengecualian akan dilemparkan.
  • offer(element): Masukkan elemen yang ditentukan ke penghujung baris gilir Jika baris gilir penuh, ia akan kembali palsu.
  • remove(): Mengalih keluar dan mengembalikan elemen di kepala baris gilir dan membuang pengecualian jika baris gilir kosong.
  • poll(): Alih keluar dan kembalikan elemen di kepala baris gilir, atau batal jika baris gilir kosong.
  • element(): Mengembalikan elemen di kepala baris gilir, tetapi tidak mengeluarkannya Jika baris gilir kosong, pengecualian akan dilemparkan.
  • peek(): Mengembalikan elemen di kepala baris gilir, tetapi tidak mengalih keluarnya Jika baris gilir kosong, ia mengembalikan null.

Queue juga mempunyai beberapa kaedah lain, seperti size(), isEmpty(), contains(), dll., yang boleh dipilih mengikut keperluan sebenar.

  1. Kelas pelaksanaan Queue

Java menyediakan pelbagai kelas pelaksanaan Queue tertentu, yang biasa digunakan termasuk ArrayBlockingQueue, LinkedBlockingQueue dan PriorityBlockingQueue.

2.1 ArrayBlockingQueue
ArrayBlockingQueue ialah baris gilir terhad yang dilaksanakan berdasarkan tatasusunan. Ia disusun mengikut prinsip FIFO dan menyediakan prestasi yang cekap untuk operasi pemasukan dan pemadaman.

Berikut ialah contoh mudah menggunakan ArrayBlockingQueue:

import java.util.concurrent.ArrayBlockingQueue;

public class ArrayBlockingQueueExample {
    public static void main(String[] args) {
        ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<>(5);
        
        // 添加元素
        queue.add("a");
        queue.add("b");
        queue.add("c");
        
        // 移除元素
        queue.remove();
        
        // 获取队列头部元素
        String head = queue.peek();
        
        System.out.println(queue); // 输出:[b, c]
        System.out.println(head); // 输出:b
    }
}
Salin selepas log masuk

2.2 LinkedBlockingQueue
LinkedBlockingQueue ialah baris gilir tanpa sempadan berdasarkan pelaksanaan senarai terpaut. Ia juga disusun mengikut prinsip FIFO dan memberikan prestasi yang cekap untuk operasi pemasukan dan pemadaman.

Berikut ialah contoh mudah menggunakan LinkedBlockingQueue:

import java.util.concurrent.LinkedBlockingQueue;

public class LinkedBlockingQueueExample {
    public static void main(String[] args) {
        LinkedBlockingQueue<String> queue = new LinkedBlockingQueue<>();
        
        // 添加元素
        queue.offer("a");
        queue.offer("b");
        queue.offer("c");
        
        // 移除元素
        queue.poll();
        
        // 获取队列头部元素
        String head = queue.peek();
        
        System.out.println(queue); // 输出:[b, c]
        System.out.println(head); // 输出:b
    }
}
Salin selepas log masuk

2.3 PriorityBlockingQueue
PriorityBlockingQueue ialah baris gilir tanpa sempadan yang dilaksanakan berdasarkan timbunan keutamaan. Ia mengisih elemen dan boleh melakukan operasi pemasukan dan pemadaman dalam susunan yang ditentukan.

Berikut ialah contoh mudah menggunakan PriorityBlockingQueue:

import java.util.concurrent.PriorityBlockingQueue;

public class PriorityBlockingQueueExample {
    public static void main(String[] args) {
        PriorityBlockingQueue<String> queue = new PriorityBlockingQueue<>();
        
        // 添加元素
        queue.offer("b");
        queue.offer("c");
        queue.offer("a");
        
        // 移除元素
        queue.poll();
        
        // 获取队列头部元素
        String head = queue.peek();
        
        System.out.println(queue); // 输出:[b, c]
        System.out.println(head); // 输出:b
    }
}
Salin selepas log masuk
  1. Summary

Queue ialah salah satu struktur data yang biasa digunakan di Java, yang boleh mengurus susunan dan pemprosesan data dengan baik. Artikel ini memperkenalkan definisi dan kaedah biasa antara muka Baris Gilir, dan memberikan contoh kod bagi tiga kelas pelaksanaan Baris Gilir yang biasa digunakan. Pembaca boleh memilih kelas pelaksanaan Queue yang sesuai mengikut keperluan sebenar, dan secara fleksibel menggunakan kaedahnya untuk melaksanakan logik perniagaan mereka sendiri.

Atas ialah kandungan terperinci Aplikasi Queue dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan