Hutool-使用BoundedPriorityQueue将数组排序
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.1.0</version> </dependency>
代码示例:
import cn.hutool.core.collection.BoundedPriorityQueue; import java.util.ArrayList; import java.util.Comparator; public class BoundedPriorityQueueDemo { public static void main(String[] args) { ////初始化队列,设置队列的容量为8(只能容纳8个元素),元素类型为integer使用默认比较器,在队列内部将按照从小到大排序 BoundedPriorityQueue<Integer> queue = new BoundedPriorityQueue<>(8); //初始化队列,使用自定义的比较器 queue = new BoundedPriorityQueue<>(8, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1.compareTo(o2); } }); //定义了8个元素,当元素加入到队列中,会按照从小到大排序,当加入第8个元素的时候,队列末尾(最大的元素)将会被抛弃 int [] array = new int[]{5,6,7,3,2,4,22,14}; for (int i : array) { //将数组的元素添加进去队列,使用add或queue // queue.offer(i); queue.add(i); } //队列可以转换为List ArrayList<Integer> list = queue.toList(); System.out.println(list); //[2, 3, 4, 5, 6, 7, 14, 22] System.out.println(queue); //[2, 3, 4, 5, 6, 7, 14, 22] } }