Java PriorityQueue优先队列自定义类比较器的使用方法

PriorityQueue官方API

  • PriorityQueue默认是升序
  • 自定义类比较器的用法:

	public class ListNode {
		int val;
        ListNode next;
        ListNode() {}
        ListNode(int val) { this.val = val; }
        ListNode(int val, ListNode next) { this.val = val; this.next = next; }
    }
    
	//自定义比较类,升序排列
    static Comparator<ListNode> cLNode = new Comparator<ListNode>() {
        public int compare(ListNode o1, ListNode o2) {
                return o1.val-o2.val;
        }
    };
    
    public static void main(String[] args) {
    	//自定义类的优先队列需要重写比较类作为传入参数
        Queue<ListNode> que = new PriorityQueue<>(cLNode);   
        //简单写法
        // Queue<ListNode> que = new PriorityQueue<>((v1, v2) -> v1.val - v2.val);
    }
    

LeetCode例题

23. 合并K个升序链表
973. 最接近原点的 K 个点

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐