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

时间:2017-12-04 06:54:30

标签: java priority-queue

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

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。

我该如何解决这个问题?

2 个答案:

答案 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();