我正在尝试使用链表实现从头创建优先级队列ADT。在优先级队列中,我需要插入作业,作业必须按优先级顺序执行。我构建的优先级ADT来自我的Java书籍,我的作业类是由我创建的。我可以将所有作业插入优先级队列,但当我尝试移除min()时,我得到一个无法强制转换的类。。。错误
这是我获取数组的方法,将它们放入队列并删除它们。
public static void executeJobs(Job[] jobInputArray) {
SortedPriorityQueue pq = new SortedPriorityQueue();
for(int j = 0; j < jobInputArray.length; j++) {
pq.insert(jobInputArray[j].getFinalPriority(), jobInputArray[j]);
jobInputArray[j].setEntryTime(j+1);
}
int cycles = 0;
while(!pq.isEmpty()) {
Job currentJob = (Job) pq.removeMin();
System.out.println(currentJob.getJobName());
}
}
问题出现在我的:作业当前作业=(作业)pq.removeMin();行。
这是我的SortedPriorityQueue类:
public static class SortedPriorityQueue<K,V> extends AbstractPriorityQueue<K,V>{
private PositionalList<Entry<K,V>> list = new LinkedPositionalList<>();
public SortedPriorityQueue() { super(); }
public SortedPriorityQueue(Comparator<K> comp) {super(comp);}
public Entry<K,V> insert(K key, V value) throws IllegalArgumentException{
checkKey(key);
Entry<K,V> newest = new PQEntry<>(key,value);
Position<Entry<K,V>> walk = list.last();
while(walk != null && compare(newest, walk.getElement()) < 0)
walk = list.before(walk);
if(walk == null)
list.addFirst(newest);
else
list.addAfter(walk, newest);
return newest;
}
public Entry<K,V> min(){
if (list.isEmpty()) return null;
return list.first().getElement();
}
public Entry<K,V> removeMin(){
if(list.isEmpty()) return null;
return list.remove(list.first());
}
public int size() {return list.size();}
}
非常感谢您的帮助。。提前谢谢!
removeMin
返回一个条目
Job currentJob = (Job) pq.removeMin().getValue();
我试图从生成的源创建一个bean。 每次我尝试运行我的spring boot应用程序时,我都会得到以下错误: 原因:java.lang.ClassCastException:类org.apache.cxf.endpoint.clientImpl无法强制转换为类com.xignite.services.xigniteCurrenciesSOAP(org.apache.cxf.endpoint.cli
我的错误:- java.lang.ClassCastException:类*不能强制转换为类java.io.Serializable(*位于加载程序'app'的未命名模块中;java.io.Serializable位于加载程序'bootstrap'的模块java.base中) 表示包和类名。
我的错误:- java.lang.ClassCastException:类*不能强制转换为类java.io.Serializable(*位于加载程序'app'的未命名模块中;java.io.Serializable位于加载程序'bootstrap'的模块java.base中) 表示包和类名。
我试图创建一个函数,如果x和y是整数,则返回x和y之间的随机整数,但如果x或y是双精度的,则该函数返回x和y之间的双精度。但当我尝试使用整数时,它引发了一个异常:“类java.lang.integer不能转换为类java.lang.double(java.lang.integer和java.lang.double位于加载程序“引导程序”的模块java.base中)”“如何修复它?
我得到以上的错误,如果有人知道,然后告诉我。。。我将非常感激 Java: XML:
下面是托管活动片段: 有问题的行是代码段的最后一行。这是我的语录片段。 假设我对主机活动没有扩展support.v4的看法是正确的,那么我该怎么做呢?