PriorityQueue comparator() trong java với ví dụ cụ thể

PriorityQueue comparator() trả về một comparator dùng dể sắp xếp các phần tử trong PriorityQueue. Phương thức này hữu dụng khi chúng ta muốn chia sẽ cách sắp xếp của PriorityQueue này cho PriorityQueue khác. comapator() sẽ trả về null nếu PriorityQueue hiện tại đang sử dụng comparator tự nhiên.

Syntax

public Comparator<? super E> comparator()

Parameter: Không có tham số đầu vào.

Return: Comparator sử dụng để sắp xếp các phần tử, trả về null nếu sử dụng Comparator mặc định.

Ví dụ: PriorityQueue sử dụng comparator mặc định.

import java.util.Comparator;
import java.util.PriorityQueue;
public class Main {

    public static void main(String args[]) {
        PriorityQueue<Integer> queue = new PriorityQueue<>();

        // Adding elemetns to the queue
        queue.add(20);
        queue.add(24);
        queue.add(30);


        // Creating a comparator
        Comparator comp = queue.comparator();

        // Displaying the comparator values
        System.out.println("Comparator value is: " + comp);
    }

}

Output: Comparator value is: null

Ví dụ 2: Custom Comparator, Sử dụng comparator của PriorityQueue khác.

import java.util.Comparator;
import java.util.PriorityQueue;
public class Main {

    public static void main(String args[]) {
        PriorityQueue<Integer> queue = new PriorityQueue<>(Comparator.comparingInt(o -> o));

        // Adding elemetns to the queue
        queue.add(20);
        queue.add(24);
        queue.add(30);


        // Creating a comparator
        Comparator comp = queue.comparator();
        System.out.println("Comparator value is: " + comp);
        System.out.println(queue);

        // Displaying the comparator values
        PriorityQueue<Integer> queue1 = new PriorityQueue<>(comp);
        queue1.add(100);
        queue1.add(500);
        System.out.println(queue1);
    }

}

Output:

Comparator value is: java.util.Comparator$$Lambda$2/1072408673@6f496d9f
[20, 24, 30]
[100, 500]

Các bài viết liên quan

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x