@Override
public Vertex next() {
Queue<Vertex> nV = new LinkedList<Vertex>(graph.getNeighbours(this.sV));
System.out.println(nV.getFirst());
return nV.getFirst();
}
上面我声明了一个队列nV
,它是一个由链接列表实例化的队列。 LinkedList类型应该有方法getFirst()
,为什么这个程序不允许它?即使使用pop
我也没关系,因为如果可能的话,它就是一个队列,但不确定是否有效。
ERROR at solution.java (at line 42)
return nV.getFirst();
^^^^^^^^
The method getFirst() is undefined for the type Queue<Vertex>
答案 0 :(得分:0)
我相信您正在寻找的方法是 ...
MAX(BatInnings.Runs) AS varchar(3)) + CASE WHEN
sum(case when BatInnings.fk_HowOut_Id = 7 then 1 else 0 end)>0
THEN '*' ELSE ''END) AS 'High Score'
...
方法。 peek
方法返回队列的第一个元素,而不将其从队列中删除。但是,如果您确实希望从队列中删除第一个元素,那么请使用peek
方法,该方法将队列中的元素出列。
将remove
更改为nV.getFirst()
或nV.peek()
答案 1 :(得分:0)
您正在将LinkedList实例分配给Queue类型的指针,该指针不公开getFirst()方法,请尝试使用:
@Override
public Vertex next() {
LinkedList<Vertex> nV = new LinkedList<Vertex>(graph.getNeighbours(this.sV));
System.out.println(nV.getFirst());
return nV.getFirst();
}
LinkedList类实现了Queue接口,但getFirst()方法是从Deque继承的,实际上你也可以这样做
Deque nV = new LinkedList<Vertex>(graph.getNeighbours(this.sV));
使getFirst()方法可用