2017-05-18 38 views
0

有了一個名單,我通常將能夠找到做這樣一個元素:查找和優先級隊列替換特定對象

int index = open.indexOf(object); 
if(index != -1){ 
    open.set(index, neighbour); 
} 

是否有替代/解決方法的優先級隊列?

我:

PriorityQueue<State> open = createQ();

+0

如果您使用的是優先級隊列有沒有一種方法,讓你用另一個替換的對象。您將擁有poll()所有對象,將它們添加到列表中,然後刪除所需的對象,然後將它們添加()或提供()回到您的優先級隊列中。確保事先調用contains()以確保要刪除的對象存在於隊列中 –

回答

0

你可以這樣做:

PriorityQueue<String> pq = new PriorityQueue<>(); 
pq.add("test1"); 

// removes object and return true if it was removed 
if (pq.remove("test1")) { 
    // adds element in natural ordering 
    pq.add("test2"); 
}