自定义 PriorityQueue 中的排序顺序
PriorityQueue 是一种有用的数据结构,它维护其元素的排序顺序。默认情况下,它根据元素的自然顺序进行排序。要自定义此顺序,您可以使用比较器。
使用比较器
PriorityQueue 构造函数有一个重载,它将 Comparator 作为参数。该比较器定义队列的排序标准。例如,考虑一个根据长度对字符串进行排序的 PriorityQueue:
Comparator<String> comparator = new StringLengthComparator(); PriorityQueue<String> queue = new PriorityQueue<>(10, comparator);
Comparator 实现
StringLengthComparator 类实现 Comparator 接口:
public class StringLengthComparator implements Comparator<String> { public int compare(String x, String y) { return x.length() - y.length(); } }
通过比较字符串长度,比较器建立所需的排序order.
Offer 与 Add
offer 和 add 方法都会向队列添加一个元素。但是,如果元素添加成功,offer 会返回 true,而如果队列已满,add 会抛出异常。对于无界的 PriorityQueue,这两种方法之间没有功能差异。
以上是如何自定义PriorityQueue的排序顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!