วิธีการใช้ Priority Queue ใน Java



บทความนี้จะแนะนำให้คุณรู้จักกับอีกหัวข้อที่น่าสนใจในโดเมนการเขียนโปรแกรมนั่นคือ Priority Queue ใน Java พร้อมกับการสาธิต

ลำดับความสำคัญ คิวใน Java ใช้เมื่อวัตถุควรได้รับการประมวลผลตามลำดับความสำคัญ บทความนี้จะช่วยคุณสำรวจแนวคิดนี้โดยละเอียด คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้

มาเริ่มกันเลย





ลำดับความสำคัญคิวใน Java

ดังที่ได้กล่าวไปแล้ว PriorityQueue ถูกใช้เมื่อวัตถุควรได้รับการประมวลผลตามลำดับความสำคัญ เป็นที่ทราบกันดีว่าคิวเป็นไปตามอัลกอริทึมเข้าก่อนออกก่อน แต่บางครั้งองค์ประกอบของคิวจำเป็นต้องได้รับการประมวลผลตามลำดับความสำคัญนั่นคือเมื่อ PriorityQueue เข้ามาเล่น PriorityQueue ขึ้นอยู่กับฮีปลำดับความสำคัญ องค์ประกอบของลำดับความสำคัญจะเรียงลำดับตามลำดับธรรมชาติหรือโดยตัวเปรียบเทียบที่จัดเตรียมไว้ในเวลาสร้างคิวขึ้นอยู่กับว่าจะใช้ตัวสร้างใดประเด็นสำคัญบางประการในลำดับความสำคัญมีดังนี้:

  • PriorityQueue ไม่อนุญาตให้ใช้พอยน์เตอร์ NULL
  • เราไม่สามารถสร้าง PriorityQueue ของ Objects ที่เทียบเคียงไม่ได้
  • PriorityQueue คือคิวที่ไม่ถูกผูกไว้
  • ส่วนหัวของคิวนี้เป็นองค์ประกอบที่น้อยที่สุดเมื่อเทียบกับลำดับที่ระบุ หากองค์ประกอบหลายรายการถูกผูกติดกันโดยมีค่าน้อยที่สุดหัวก็เป็นหนึ่งในองค์ประกอบเหล่านั้น - ความสัมพันธ์จะขาดโดยพลการ
  • แบบสำรวจการดำเนินการเรียกคืนคิวลบแอบมองและองค์ประกอบเข้าถึงองค์ประกอบที่ส่วนหัวของคิว
  • มันสืบทอดวิธีการจากคลาส AbstractQueue, AbstractCollection, Collection และ Object

ไปต่อกับบทความนี้เรื่อง Priority Queue ใน Java



การประกาศส่วนต่อประสานคิว

คิวอินเทอร์เฟซสาธารณะขยายคอลเล็กชัน

ไปต่อกับบทความนี้เรื่อง Priority Queue ใน Java

วิธีการของ Java Queue Interface

วิธี คำอธิบาย

เพิ่มบูลีน (วัตถุ)



ใช้เพื่อแทรกองค์ประกอบที่ระบุลงในคิวนี้และคืนค่าจริงเมื่อสำเร็จ

ข้อเสนอบูลีน (วัตถุ)

ใช้เพื่อแทรกองค์ประกอบที่ระบุลงในคิวนี้

ลบวัตถุ ()

ใช้เพื่อดึงและลบส่วนหัวของคิวนี้

แบบสำรวจวัตถุ ()

ใช้เพื่อดึงและลบส่วนหัวของคิวนี้หรือส่งคืนค่า null หากคิวนี้ว่างเปล่า

องค์ประกอบวัตถุ ()

ใช้เพื่อดึงข้อมูล แต่ไม่ได้ลบส่วนหัวของคิวนี้

มองวัตถุ ()

ใช้เพื่อดึงข้อมูล แต่ไม่ลบส่วนหัวของคิวนี้หรือส่งคืนค่าว่างหากคิวนี้ว่างเปล่า

ไปต่อกับบทความนี้เรื่อง Priority Queue ใน Java

ย้อนกลับตัวเลขใน python

ตัวอย่าง

แพ็คเกจ com.journaldev.collections

import java.util.Comparator import java.util.PriorityQueue import java.util.Queue import java.util.Random public class PriorityQueueExample {public static void main (String [] args) {// ตัวอย่างการเรียงลำดับตามธรรมชาติของลำดับความสำคัญของคิวคิวจำนวนเต็ม PriorityQueue = PriorityQueue ใหม่ (7) Random Rand = new Random () สำหรับ (int i = 0i<7i++){ integerPriorityQueue.add(new Integer(rand.nextInt(100))) } for(int i=0i<7i++){ Integer in = integerPriorityQueue.poll() System.out.println('Processing Integer:'+in) } //PriorityQueue example with Comparator Queue customerPriorityQueue = new PriorityQueue(7, idComparator) addDataToQueue(customerPriorityQueue) pollDataFromQueue(customerPriorityQueue) } //Comparator anonymous class implementation public static Comparator idComparator = new Comparator(){ @Override public int compare(Customer c1, Customer c2) { return (int) (c1.getId() - c2.getId()) } } //utility method to add random data to Queue private static void addDataToQueue(Queue customerPriorityQueue) { Random rand = new Random() for(int i=0 i<7 i++){ int id = rand.nextInt(100) customerPriorityQueue.add(new Customer(id, 'Pankaj '+id)) } } //utility method to poll data from queue private static void pollDataFromQueue(Queue customerPriorityQueue) { while(true){ Customer cust = customerPriorityQueue.poll() if(cust == null) break System.out.println('Processing Customer with ID='+cust.getId()) } } } 

เอาท์พุต:

เอาต์พุต - คิวลำดับความสำคัญใน Java- Edureka

ดังนั้นเราจึงมาถึงตอนท้ายของบทความนี้ในเรื่อง 'Priority Queue in Java' หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด