Rumah  >  Artikel  >  Java  >  Bagaimanakah saya boleh mengubah suai elemen PriorityQueue dalam Java?

Bagaimanakah saya boleh mengubah suai elemen PriorityQueue dalam Java?

PHPz
PHPzke hadapan
2023-08-26 10:13:231437semak imbas

Bagaimanakah saya boleh mengubah suai elemen PriorityQueue dalam Java?

Biasanya, baris gilir mengikut prinsip first-in-first-out (FIFO), tetapi PriorityQueue Pendekatan berasaskan keutamaan diikuti apabila mengakses elemen dengan cara keutamaan. setiap elemen baris gilir Mempunyai keutamaan yang berkaitan dengannya. Elemen diutamakan mengikut susunan semula jadinya pesanan. Walau bagaimanapun, kami boleh menyediakan pesanan tersuai menggunakan komparator PriorityQueue sebenarnya tidak diisih, ia hanya diambil dalam susunan yang diisih membolehkan kami mengubah suai elemen PriorityQueue dengan mudah.

Program Java untuk mengubah suai elemen ProrityQueue

Sebelum memulakan program, mari kita fahami beberapa kaedah terbina dalam PriorityQueue -

  • add() − Ia digunakan untuk menambah satu elemen pada baris gilir

  • offer() − Ia juga memasukkan elemen yang diberikan ke dalam baris gilir.

  • peek() − digunakan untuk mendapatkan semula elemen pertama baris gilir.

  • remove() − Ia digunakan untuk mengalih keluar elemen yang ditentukan daripada baris gilir.

Pendekatan 1

  • Tentukan objek koleksi PriorityQueue dan gunakan kaedah 'add()' untuk menyimpan beberapa elemen

  • kaedah.
  • Sekarang, menggunakan kaedah 'peek()' tunjukkan elemen baris gilir pertama dan kemudian alih keluar ini Alih keluar elemen daripada baris gilir menggunakan kaedah 'move()'

  • Bergerak lebih jauh dan masukkan elemen baharu pada kedudukan yang sama menggunakan kaedah terbina dalam

  • ‘tawaran()’.
  • Sekali lagi tunjukkan elemen pertama yang diubah suai.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

Dalam contoh berikut, kami akan mengubah suai elemen PriorityQueue

Tiada keutamaan untuk pembanding, yang bermaksud mereka akan diakses dalam tertib menaik.

import java.util.*;
public class Modify {
  public static void main(String[] args) {
      PriorityQueue<Integer> queuePq = new PriorityQueue<>();
      
      // inserting elements
      queuePq.add(7);
      queuePq.add(9);
      queuePq.add(2);
      queuePq.add(4);
      queuePq.add(3);
      
      System.out.println("Original Queue: " + queuePq);
      int head1 = queuePq.peek(); // accessing first element
      
      System.out.println("The first element in Queue: " + head1);
      queuePq.remove(2); // removing first element
      queuePq.offer(1); // adding new element at first position
      int head2 = queuePq.peek(); // accessing first element
      
      System.out.println("The updated first element in Queue: " + head2);
      queuePq.offer(2); // adding new element at first position
      System.out.println("Newly updated Queue: " + queuePq);
   }
}

Output

Original Queue: [2, 3, 7, 9, 4]
The first element in Queue: 2
The updated first element in Queue: 1
Newly updated Queue: [1, 3, 2, 9, 4, 7]

Kaedah 2

  • Tentukan objek koleksi PriorityQueue menggunakan kaedah terbina dalam yang dipanggil 'Collections.reverseOrder()' digunakan untuk menyimpan elemen dalam tertib menurun.

  • Sekarang, ikuti langkah yang sama yang diterangkan dalam contoh sebelumnya.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

Dalam contoh berikut, kami akan mengubah suai elemen PriorityQueue Gunakan pembanding untuk keutamaan untuk menyediakan akses dalam tertib menurun.

import java.util.*;
public class Modify {
   public static void main(String[] args) {
      PriorityQueue<Integer> queuePq = new
      PriorityQueue<>(Collections.reverseOrder());
      
      // inserting elements
      queuePq.add(7);
      queuePq.add(9);
      queuePq.add(2);
      queuePq.add(1);
      queuePq.add(3);
      
      System.out.println("Original Queue: " + queuePq);
      int head1 = queuePq.peek(); // accessing first element
      
      System.out.println("The first element in Queue: " + head1);
      queuePq.remove(9); // removing first element
      queuePq.offer(8); // adding new element at first position
      int head2 = queuePq.peek(); // accessing first element
      
      System.out.println("The updated first element in Queue: " + head2);
      queuePq.offer(9); // adding new element at first position
      System.out.println("Newly updated Queue: " + queuePq);
   }
}     

Output

Original Queue: [9, 7, 2, 1, 3]
The first element in Queue: 9
The updated first element in Queue: 8
Newly updated Queue: [9, 7, 8, 1, 3, 2]

Kesimpulan

Kami memulakan artikel ini dengan mentakrifkan kelas PriorityQueue bagi Rangka Kerja Koleksi Java Laksanakan kandungan antara muka Baris Gilir. Dalam bahagian seterusnya kita akan membincangkan beberapa terbina dalam Kaedah yang digunakan dalam program Java untuk mengubah suai elemen dalam PriorityQueue yang diberikan

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengubah suai elemen PriorityQueue dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam