[英]Java get last element from List of nodes found within PriorityQueue
我遇到了以下代碼的問題:
問題代碼:
Node lastPeek=pq.peek();
tempList3.add(lastPeek.n1.get(n1.size()-1));
其中pq是PriorityQueue(存儲Node類型的對象(請參見下面的Node類),包含List<Node>
和double類型的對象)。 PriorityQueue通過以下方式聲明:
Comparator<Node> comparator= new CostComparator();
//creation of priority queue of type Node
PriorityQueue<Node> pq=new PriorityQueue<Node>(comparator);
tempList3(來自“問題代碼”部分)是具有以下聲明的ArrayList:
List<Node> tempList3=new ArrayList<Node>();
以下是Node類的一部分:
public int dest;
public Node next;
public Node parent;
double cost=0;
List<Node> n1=new ArrayList<Node>();
public Node(int d) {
dest = d;
next = null;
parent = null;
}
//used for storing objects into PriorityQueue pq
public Node(List<Node> n, double icost) {
n1=n;
cost=icost;
}
從描述為“問題代碼”的代碼部分可以看出,我一直在嘗試對<Node>
類型的PriorityQueue pq執行peek()操作,並將值存儲在Node類型的lastPeek中。 當我嘗試通過使用.n1.get(n1.size()-1)獲取List值內的最后一個Node時出現問題,因為未識別n1.size()。
我收到錯誤
找不到符號變量n1
在.get(n1.size()-1)部分中。 我的主要目的是使用PriorityQueue pq獲取第一個元素,然后獲取該第一個元素的List部分,然后使我能夠獲取List中的最后一個Node值(這就是為什么我一直嘗試使用.get(n1 .size()-1))。 PriorityQueue中的元素以以下結構存儲:
Node n=new Node(List<Node> , double);
每次使用時都需要從lastPeek延遲n1,如下所示:
tempList3.add(lastPeek.n1.get(lastPeek.n1.size()-1));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.