我遇到轮询优先队列的问题。我的尝试是这样的:
public int [][] MST(int i, int prim[][], int mst[][], int vertices, int counter, PriorityQueue priorityQueue){
Table table = new Table();
int next_row;
for(int j=0;j<vertices;j++)
{
table.s = i;
table.d = j;
table.w = prim[i][j];
priorityQueue.add(table);
}
table = priorityQueue.poll();
mst[counter][0] = table.s;
mst[counter][1] = table.d;
return mst;
}
然后我在priorityQueue.poll()中遇到错误。它说需要Table,但是找到了java.lang.Object。
我该如何解决这个问题?
答案 0 :(得分:0)
您可以在priorityQueue
的声明中指定项目类型PriorityQueue < Integer > prq = new PriorityQueue < Integer > ();
prq.add (new Integer (5)) ;
Integer number = prq.poll();
但如果您无法更改声明,则可以使用typeCasting
PriorityQueue prq = new PriorityQueue();
prq.add (new Integer (5)) ;
Integer number = (Integer) prq.poll();
答案 1 :(得分:0)
使用Typecasting作为
PriorityQueue prq = new PriorityQueue();
prq.add (new Table (values)) ;
Table data = (Table) prq.poll();