gpt4 book ai didi

java - 插入优先队列

转载 作者:行者123 更新时间:2023-11-30 09:54:55 24 4
gpt4 key购买 nike

我想将一些 int 推送到优先级队列,但我不能!我使用了 queue.add() 代码,但此代码将返回排序后的队列,请帮忙,谢谢!

最佳答案

push/pop 操作明确定义为堆栈抽象数据类型;我不确定这对队列(甚至优先级队列)是否有意义。

PriorityQueue 实现 Queue ,它只指定 add/remove。另一方面,DequeaddFirst/LastremoveFirst/Last 等。您可能正在寻找其中一个。


一个例子

这里是一个使用 StringPriorityQueue 的例子,使用自定义 Comparator比较长度。

    Queue<String> queue = new PriorityQueue<String>(
100, new Comparator<String>() {
@Override public int compare(String s1, String s2) {
return Integer.valueOf(s1.length()).compareTo(s2.length());
}
}
);
queue.add("Sally");
queue.add("Amy");
queue.add("Alice");

System.out.println(queue);
// "[Amy, Sally, Alice]"

System.out.println(queue.remove());
// "Amy"

System.out.println(queue.remove());
// "Alice"

queue.add("Tina");
System.out.println(queue.remove());
// "Tina"

正如预期的那样,PriorityQueue 将在删除 时给出队列中最短的String。同样按照规定,关系是任意打破的。

相关问题

PriorityQueue

关于ComparatorComparable

关于java - 插入优先队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3078814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com