Kaedah dan langkah berjaga-jaga biasa untuk baris gilir Java Queue
Barisan (Barisan) ialah struktur data linear khas, dan operasinya adalah berdasarkan prinsip masuk dahulu, keluar dahulu (FIFO). Java menyediakan antara muka Queue untuk melaksanakan fungsi baris gilir Kelas pelaksanaan biasa termasuk LinkedList dan ArrayDeque.
1. Kaedah yang biasa digunakan
add(): Tambahkan elemen pada penghujung baris gilir. Jika baris gilir penuh, menggunakan kaedah ini akan membuang IllegalStateException.
Queue<Integer> queue = new LinkedList<>(); queue.add(1); queue.add(2); queue.add(3);
offer(): Tambahkan elemen pada penghujung baris gilir. Jika baris gilir penuh, menggunakan kaedah ini akan mengembalikan palsu, menunjukkan bahawa penambahan gagal.
Queue<Integer> queue = new LinkedList<>(); queue.offer(1); queue.offer(2); queue.offer(3);
remove(): Alih keluar dan kembalikan elemen kepala baris gilir. Jika baris gilir kosong, menggunakan kaedah ini akan membuang pengecualian NoSuchElementException.
Queue<Integer> queue = new LinkedList<>(); queue.add(1); queue.add(2); queue.add(3); int head = queue.remove();
poll(): Alih keluar dan kembalikan elemen kepala baris gilir. Jika baris gilir kosong, menggunakan kaedah ini akan mengembalikan null.
Queue<Integer> queue = new LinkedList<>(); queue.offer(1); queue.offer(2); queue.offer(3); int head = queue.poll();
element(): Mengembalikan elemen kepala baris gilir, tetapi tidak memadamkannya. Jika baris gilir kosong, menggunakan kaedah ini akan membuang pengecualian NoSuchElementException.
Queue<Integer> queue = new LinkedList<>(); queue.add(1); queue.add(2); queue.add(3); int head = queue.element();
peek(): Mengembalikan elemen kepala baris gilir, tetapi tidak memadamkannya. Jika baris gilir kosong, menggunakan kaedah ini akan mengembalikan null.
Queue<Integer> queue = new LinkedList<>(); queue.offer(1); queue.offer(2); queue.offer(3); int head = queue.peek();
2. Nota
Kelas pelaksanaan baris gilir biasanya tidak selamat jika digunakan dalam persekitaran berbilang benang, pemprosesan penyegerakan tambahan diperlukan.
Queue<Integer> queue = new LinkedList<>(); queue = Collections.synchronizedQueue(queue);
Pertimbangkan saiz baris gilir Jika kapasiti terhad, pertimbangan kapasiti dan pemprosesan perlu dilakukan sebelum menambah elemen.
Queue<Integer> queue = new ArrayDeque<>(10);
Ringkasan:
Baris gilir Java menyediakan satu siri kaedah untuk melaksanakan operasi masuk dahulu, keluar dahulu termasuk add(), offer(), remove(), poll(), element() dan peek(. ). Apabila menggunakan baris gilir, anda perlu memberi perhatian kepada keselamatan benang, isu kapasiti dan operasi pemadaman traversal. Baris gilir sangat mudah dan praktikal apabila menyelesaikan masalah masuk dahulu keluar, dan sesuai untuk senario seperti penjadualan tugas dan carian luas dahulu.
Atas ialah kandungan terperinci Penjelasan terperinci tentang kaedah gilir Java Queue yang biasa digunakan dan langkah berjaga-jaga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!