Làm thế nào để triển khai hàng đợi ưu tiên trong Java?



Bài viết này sẽ giới thiệu cho bạn một chủ đề thú vị khác trong lĩnh vực lập trình đó là Hàng đợi Ưu tiên Trong Java cùng với phần trình diễn

Ưu tiên Hàng đợi trong Java được sử dụng khi các đối tượng được cho là được xử lý dựa trên mức độ ưu tiên. Bài viết này sẽ giúp bạn tìm hiểu chi tiết khái niệm này. Các gợi ý sau sẽ được đề cập trong bài viết này,

Vì vậy, hãy để chúng tôi bắt đầu,





Hàng đợi ưu tiên trong Java

Như đã đề cập ở trên, PriorityQueue được sử dụng khi các đối tượng được cho là được xử lý dựa trên mức độ ưu tiên. Người ta biết rằng một hàng đợi tuân theo thuật toán First-In-First-Out, nhưng đôi khi các phần tử của hàng đợi cần được xử lý theo mức độ ưu tiên, đó là khi Hàng đợi Ưu tiên hoạt động. PriorityQueue dựa trên đống ưu tiên. Các phần tử của hàng đợi ưu tiên được sắp xếp theo thứ tự tự nhiên hoặc bởi Bộ so sánh được cung cấp tại thời điểm xây dựng hàng đợi, tùy thuộc vào phương thức khởi tạo nào được sử dụng. Các điểm quan trọng mới về Hàng đợi ưu tiên như sau:

  • PriorityQueue không cho phép con trỏ NULL.
  • Chúng tôi không thể tạo Xếp hạng ưu tiên của các đối tượng không thể so sánh được
  • PriorityQueue là các hàng đợi không bị ràng buộc.
  • Phần đầu của hàng đợi này là phần tử ít nhất so với thứ tự được chỉ định. Nếu nhiều phần tử được ràng buộc với giá trị nhỏ nhất, phần đầu là một trong những phần tử đó - các mối liên kết bị phá vỡ tùy ý.
  • Các hoạt động truy xuất hàng đợi thăm dò ý kiến, loại bỏ, xem qua và phần tử truy cập phần tử ở đầu hàng đợi.
  • Nó kế thừa các phương thức từ lớp AbstractQueue, AbstractCollection, Collection và Object.

Tiếp tục với bài viết này về Hàng đợi ưu tiên trong Java



Khai báo giao diện hàng đợi

giao diện công cộng Hàng đợi mở rộng Bộ sưu tập

Tiếp tục với bài viết này về Hàng đợi ưu tiên trong Java

Phương thức của giao diện hàng đợi Java

phương pháp Sự miêu tả

boolean add (object)



Nó được sử dụng để chèn phần tử được chỉ định vào hàng đợi này và trả về true khi thành công.

cung cấp boolean (đối tượng)

Nó được sử dụng để chèn phần tử được chỉ định vào hàng đợi này.

Đối tượng remove ()

Nó được sử dụng để lấy và loại bỏ phần đầu của hàng đợi này.

Cuộc thăm dò đối tượng ()

Nó được sử dụng để truy xuất và loại bỏ phần đầu của hàng đợi này hoặc trả về null nếu hàng đợi này trống.

Phần tử đối tượng ()

Nó được sử dụng để truy xuất, nhưng không loại bỏ, phần đầu của hàng đợi này.

Đối tượng peek ()

Nó được sử dụng để truy xuất, nhưng không loại bỏ, phần đầu của hàng đợi này hoặc trả về null nếu hàng đợi này trống.

Tiếp tục với bài viết này về Hàng đợi ưu tiên trong Java

cách phân tích cú pháp xml trong java

Thí dụ

gói com.journaldev.collections

import java.util.Comparator import java.util.PooterQueue import java.util.Queue import java.util.Random public class PriorityQueueExample {public static void main (String [] args) {// ví dụ về thứ tự tự nhiên của hàng đợi ưu tiên Queue integerPinentQueue = new PriorityQueue (7) Random rand = new Random () for (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()) } } } 

Đầu ra:

Đầu ra- Hàng đợi ưu tiên trong Java- Edureka

Vì vậy, chúng ta đã kết thúc bài viết này về 'Hàng đợi ưu tiên trong Java'. Nếu bạn muốn tìm hiểu thêm, hãy xem bởi Edureka, một công ty học trực tuyến đáng tin cậy. Khóa học đào tạo và cấp chứng chỉ Java J2EE và SOA của Edureka được thiết kế để đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.