java中优先队列如何实用匿名函数自定义排序规则
时间: 2023-07-19 17:29:37 浏览: 160
ComparableComparator:Java中的可比和比较器
Java中的优先队列也可以使用匿名函数来自定义排序规则。具体步骤如下:
1. 在创建优先队列对象时,使用lambda表达式来创建Comparator对象,重写compare方法,该方法接收两个参数并返回一个int值。方法返回负数表示第一个参数小于第二个参数,返回正数表示第一个参数大于第二个参数,返回0表示两个参数相等。
例如,如果要按照字符串长度从小到大排序,可以如下使用lambda表达式来定义比较器:
```
PriorityQueue<String> queue = new PriorityQueue<>((s1, s2) -> s1.length() - s2.length());
```
这样,向队列中添加元素时,就会按照字符串长度从小到大排序。
需要注意的是,在使用lambda表达式时,需要保证队列中的元素类型与lambda表达式中的参数类型一致。
阅读全文