【发布时间】:2016-11-14 19:25:24
【问题描述】:
public class CompareOrder<T extends Priority> implements Comparator<T> {
@Override
public int compare(T left, T right) {
return Boolean.compare(left.getSeverity(), right.getSeverity());
}
}
我有一个PriorityBlockingQueue,我在其中传递了一个比较器:
new PriorityBlockingQueue<>(size, new CompareOrder());
我想根据布尔值对这个队列进行排序,其中 true 值首先在要处理的队列中。如何在compare() 方法中进行比较,以便将真实值作为优先级排序?
【问题讨论】:
-
您能否在您的问题中解释一下您当前的代码有什么问题?有什么错误吗?
-
泛型类型需要类型参数:
new CompareOrder<>() -
不是一个好主意。最好有两个队列。
-
@EJP 两个队列的想法是什么?你能举个例子吗?
标签: java multithreading threadpool priority-queue