[英]PriorityQueue Comparator type conflict with Arrays.sort()
我的比較器當前已輸入JobSet
。 我不確定為什么它有<capture
- 我以前從未見過它。 有人能否了解這里發生的事情?
比較器......
public class JobSetComparator implements Comparator<JobSet> {
@Override
public int compare(JobSet o1, JobSet o2) {
return Integer.compare(o1.getHighestPriority().getValue(), o2.getHighestPriority().getValue());
}
}
隊列...
protected JobSetQueue queue = new JobSetQueue(0, new JobSetComparator());
public JobSetQueue getQueue() {
return queue;
}
public JobSet[] getPrioritizedQueue() {
return Arrays.sort(queue.toArray(), queue.comparator());
}
queue.toArray()
返回一個Object[]
,您提供的Comparator
無法處理。
您將需要使用備用toArray()
,它采用預期類型的數組:
JobSet[] queueArray = queue.toArray(new JobSet[]{});
Arrays.sort(queueArray, queue.comparator());
return queueArray;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.