Java 关于轮询的优先级队列错误

Java Priority queue error about poll

我在轮询优先队列方面遇到问题。我的尝试是这样的:

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。

我该如何解决这个问题?

您可以在 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();

使用类型转换为

PriorityQueue prq = new PriorityQueue(); 
prq.add (new Table (values)) ; 
Table data = (Table) prq.poll();