Rumah  >  Artikel  >  Java  >  Konsep asas dan operasi asas Java Queue

Konsep asas dan operasi asas Java Queue

王林
王林asal
2024-01-13 13:04:06721semak imbas

Java Queue队列的基本概念与操作

Konsep asas dan operasi baris gilir Java Queue

Baris Gilir (Queue) ialah struktur data biasa yang beroperasi mengikut prinsip masuk dahulu, keluar dahulu (FIFO). Dalam pengaturcaraan Java, kita boleh menggunakan antara muka Queue dan kelas pelaksanaannya untuk melaksanakan fungsi queue. Artikel ini akan memperkenalkan konsep asas dan operasi biasa Queue, dan memberikan contoh kod khusus.

1. Konsep asas gilir

Gilir ialah struktur data linear dengan dua operasi asas: enqueue dan dequeue. Enqueuing menambah elemen pada penghujung baris gilir, manakala dequeuing mendapat dan mengalih keluar elemen dari kepala baris gilir. Oleh itu, baris gilir dicirikan oleh masuk dahulu, keluar dahulu, iaitu elemen yang memasuki baris gilir dahulu ialah yang pertama meninggalkan baris gilir.

2. Antara muka Gilir dan kelas pelaksanaan

Di Java, operasi baris gilir ditakrifkan oleh antara muka Baris, yang mewarisi daripada antara muka Koleksi. Antara muka Baris Gilir mengandungi satu siri kaedah yang berkaitan dengan operasi baris gilir, seperti: tambah (tambah), enqueue (tawaran), alih keluar (alih keluar), dequeue (pungutan suara), dapatkan elemen kepala baris gilir (peek), dsb.

Java menyediakan berbilang kelas yang melaksanakan antara muka Queue yang biasa digunakan termasuk:

  1. LinkedList: Lapisan bawah dilaksanakan berdasarkan struktur senarai terpaut dan boleh digunakan sebagai baris gilir dan baris gilir dua hujung.
  2. ArrayDeque: Pelaksanaan asas adalah berdasarkan struktur tatasusunan dan juga boleh digunakan sebagai baris gilir dan baris gilir dua hujung.
  3. PriorityQueue: Barisan gilir dilaksanakan berdasarkan timbunan keutamaan, yang boleh disusun mengikut keutamaan elemen.

3. Contoh operasi asas baris gilir

Berikut ialah contoh kod menggunakan LinkedList dan ArrayDeque untuk melaksanakan operasi asas baris gilir:

  1. Buat objek baris gilir

    Queue<String> queue = new LinkedList<>();
  2. queue.add("元素1");
    queue.offer("元素2");
  3. erreee

  4. Dapatkan Elemen kepala baris gilir

    String headElement = queue.peek();
  5. Dequeue

    String removedElement1 = queue.remove();
    String removedElement2 = queue.poll();

Dalam contoh di atas, objek baris gilir LinkedList dicipta untuk mula-mula. Elemen kemudian ditambahkan pada penghujung baris gilir menggunakan kaedah tambah dan tawaran. Menggunakan kaedah mengintip, anda boleh mendapatkan elemen di kepala baris gilir, tetapi ia tidak akan mengeluarkannya. Akhir sekali, gunakan kaedah alih keluar dan tinjauan pendapat untuk mengalih keluar elemen daripada baris gilir Perbezaan antara kedua-duanya ialah apabila baris gilir kosong, kaedah alih keluar akan membuang pengecualian, manakala kaedah tinjauan kembali nol.

4. Senario aplikasi Baris

Barisan mempunyai rangkaian luas senario aplikasi dalam pembangunan sebenar, seperti:

  1. Baris gilir mesej: digunakan untuk melaksanakan penghantaran mesej tak segerak dan memisahkan pengeluar dan pengguna.
  2. Kolam benang: digunakan untuk mengawal bilangan utas serentak dan mengendalikan sejumlah besar tugas.
  3. Algoritma carian pertama keluasan: digunakan untuk menyelesaikan masalah seperti traversal graf.

Ringkasan:
Artikel ini memperkenalkan konsep asas dan operasi biasa baris gilir dalam Java, dan memberikan contoh kod LinkedList dan ArrayDeque. Sebagai struktur data biasa, baris gilir mempunyai pelbagai senario aplikasi dalam pembangunan sebenar. Menguasai penggunaan baris gilir akan membantu meningkatkan kecekapan pengaturcaraan dan kualiti kod.

Atas ialah kandungan terperinci Konsep asas dan operasi asas Java Queue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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