java中优先队列如何自定义排序规则
时间: 2023-07-09 08:34:29 浏览: 156
Java 类自定义排序
4星 · 用户满意度95%
Java中的优先队列可以使用Comparator接口来自定义排序规则。具体步骤如下:
1. 定义一个实现Comparator接口的类,重写compare方法,该方法接收两个参数并返回一个int值。方法返回负数表示第一个参数小于第二个参数,返回正数表示第一个参数大于第二个参数,返回0表示两个参数相等。
2. 在创建优先队列对象时,将自定义的比较器作为参数传入。
例如,如果要按照字符串长度从小到大排序,可以如下定义比较器类:
```
class StringLengthComparator implements Comparator<String> {
@Override
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
}
```
然后在创建优先队列对象时,将该比较器作为参数传入:
```
PriorityQueue<String> queue = new PriorityQueue<>(new StringLengthComparator());
```
这样,向队列中添加元素时,就会按照字符串长度从小到大排序。
阅读全文