JavaAPI--PriorityQueue

1:PriorityQueue 是 Java 中提供的一个优先队列实现,它可以用来实现最小堆或最大堆。在 PriorityQueue 中,元素按照它们的优先级(通过比较器或元素的自然顺序)进行排序。

2:创建 PriorityQueue: 可以使用无参构造函数创建一个默认的最小堆,或者通过传递比较器来创建最大堆。

// 默认创建最小堆
PriorityQueue<Integer> minHeap = new PriorityQueue<>();

// 创建最大堆
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());

3:添加元素: 使用 add()offer() 方法将元素添加到队列中。

minHeap.add(5);
minHeap.offer(10);

4:获取队头元素: 使用 peek() 方法获取队头元素,该元素是队列中优先级最高的元素。

int topElement = minHeap.peek();

5:弹出队头元素: 使用 poll() 方法弹出并返回队头元素。

int poppedElement = minHeap.poll();

6:遍历 PriorityQueue: 通过迭代器或转换为数组来遍历队列中的元素。

Iterator<Integer> iterator = minHeap.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

// 或者转换为数组
Object[] array = minHeap.toArray();

7:如何构建比较器(Comparator):

比较器是一个用于定义元素比较规则的接口,通常用于在集合(例如 PriorityQueue)中排序元素。在 Java 中,可以通过创建匿名类或使用 Lambda 表达式来构建比较器。

                使用匿名类:

Comparator<Integer> minComparator = new Comparator<Integer>() {
    @Override
    public int compare(Integer a, Integer b) {
        return a - b; // 升序排列
    }
};

                使用 Lambda 表达式:

Comparator<Integer> minComparator = (a, b) -> a - b; // 升序排列

                比较器规则:比较器默认升序排列,规定返回正值a在b后面,返回负值a在b前面,

因此return a-b;是升序return b-a;是降序。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值