学堂 学堂 学堂公众号手机端

要自定义排序PriorityQueue,您需要实现Comparator接口,并覆盖其中的compare()方法。Comparator接口允许您定义元素之间的比较逻辑。然后,您可以将自定义的Comparator对象作为参数传递给PriorityQueue的构造函数。 下面是一个示例,展示如何使用PriorityQueue自定义排序

lewis 1年前 (2024-03-26) 阅读数 3 #技术

要自定义排序PriorityQueue,您需要实现Comparator接口,并覆盖其中的compare()方法。Comparator接口允许您定义元素之间的比较逻辑。然后,您可以将自定义的Comparator对象作为参数传递给PriorityQueue的构造函数。

下面是一个示例,展示如何使用PriorityQueue自定义排序:

importjava.util.Comparator; importjava.util.PriorityQueue; publicclassPriorityQueueCustomSorting{ publicstaticvoidmain(String[]args){ //创建自定义的Comparator对象 Comparator<Integer>customComparator=newComparator<Integer>(){ @Override publicintcompare(Integernum1,Integernum2){ //根据数字的绝对值进行比较 returnInteger.compare(Math.abs(num1),Math.abs(num2)); } }; //创建PriorityQueue并传入自定义的Comparator对象 PriorityQueue<Integer>priorityQueue=newPriorityQueue<>(customComparator); //添加元素到PriorityQueue priorityQueue.add(-10); priorityQueue.add(5); priorityQueue.add(-3); priorityQueue.add(8); //输出PriorityQueue中的元素 while(!priorityQueue.isEmpty()){ System.out.println(priorityQueue.poll()); } } }

在上面的示例中,我们创建了一个自定义的Comparator对象,它根据数字的绝对值进行比较。然后,我们创建了一个PriorityQueue,并将自定义的Comparator对象传递给它的构造函数。最后,我们向PriorityQueue中添加一些元素,并使用poll()方法按照自定义排序的顺序依次获取并输出这些元素。


执行上述代码,将输出以下结果:

-3 5 -10 8

可以看到,PriorityQueue中的元素按照自定义的排序顺序进行了排列。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门