比较器和优先队列
创始人
2024-12-15 02:30:50
0

下面是一个使用比较器和优先队列的示例代码:

import java.util.Comparator;
import java.util.PriorityQueue;

public class ComparatorAndPriorityQueueExample {
    public static void main(String[] args) {
        // 创建一个比较器,用于对元素进行比较
        Comparator comparator = new Comparator() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1; // 降序排列
            }
        };

        // 创建一个优先队列,并指定比较器
        PriorityQueue priorityQueue = new PriorityQueue<>(comparator);

        // 添加元素到优先队列
        priorityQueue.offer(5);
        priorityQueue.offer(2);
        priorityQueue.offer(8);
        priorityQueue.offer(1);

        // 遍历并打印优先队列中的元素
        while (!priorityQueue.isEmpty()) {
            System.out.println(priorityQueue.poll()); // 输出:8 5 2 1
        }
    }
}

上述代码中,首先创建了一个比较器comparator,使用Comparator接口的匿名内部类实现compare()方法,该方法用于定义比较规则,这里是降序排列。然后创建了一个优先队列priorityQueue,并通过构造方法将比较器传入。接下来使用priorityQueue.offer()方法将元素添加到优先队列中。最后使用priorityQueue.poll()方法从优先队列中取出元素,并打印出来,实现了降序排列的效果。

需要注意的是,这里使用的是Java中的优先队列类PriorityQueue,它默认是基于元素的自然顺序进行排序的。如果想要自定义排序规则,需要通过比较器来实现。比较器是一个实现了Comparator接口的类,它定义了比较两个元素的方法compare()。在创建优先队列时,可以通过构造方法将比较器传入,这样优先队列就会使用比较器定义的比较规则进行排序。

相关内容

热门资讯

9分钟指导!小猪对对碰怎么破解... 9分钟指导!小猪对对碰怎么破解(透视)都是真的有挂(2021已更新)(哔哩哔哩)1、小猪对对碰怎么破...
4分钟辅助挂!广东雀神小程序辅... 4分钟辅助挂!广东雀神小程序辅助器最新版(辅助挂)详细辅助插件教程(2020已更新)(今日头条);1...
9分钟内幕!广东雀神外挂真实码... 9分钟内幕!广东雀神外挂真实码(透视)原来真的有挂(2020已更新)(微博客户端)1、用户打开应用后...
一分钟辅助挂!顺欣茶楼可以操控... 一分钟辅助挂!顺欣茶楼可以操控吗(透视)详细辅助插件教程(2022已更新)(百度)一分钟辅助挂!顺欣...
9分钟讲解!乐乐上海麻将攻略(... 9分钟讲解!乐乐上海麻将攻略(辅助挂)果然真的有挂(2021已更新)(今日头条);所有人都在同一条线...
5分钟辅助挂!懒人斗十四有外挂... 5分钟辅助挂!懒人斗十四有外挂吗(透视)详细辅助器教程(2024已更新)(抖音);1、实时懒人斗十四...
三分钟总结!德州竞技联盟辅助(... 三分钟总结!德州竞技联盟辅助(透视)好像真的有挂(2020已更新)(小红书);1、打开软件启动之后找...
十分钟辅助挂!闽南漳州麻将有没... 十分钟辅助挂!闽南漳州麻将有没有挂(辅助挂)详细辅助软件教程(2020已更新)(百度)1、玩家可以在...
9分钟体悟!手机浙江宝宝麻将(... 9分钟体悟!手机浙江宝宝麻将(透视)一般真的有挂(2025已更新)(今日头条)1、手机浙江宝宝麻将a...
五分钟辅助挂!荔枝竞技外挂什么... 五分钟辅助挂!荔枝竞技外挂什么样的(透视)详细辅助插件教程(2023已更新)(微博热搜);1、上手简...