2011-04-15 61 views
0

我想擁有一個可以接受X類型對象的隊列。這些對象X中的每一個都有一個名爲distance的int類型變量。我如何創建一個優先級隊列來獲取類型爲X的對象,然後根據每個對象的可變距離對它們進行排序?關於java優先級隊列的問題

+0

的可能重複【JAVA:如何使用一個PriorityQueue?](HTTP: //stackoverflow.com/questions/683041/java-how-do-i-use-a-priorityqueue) – 2011-04-15 09:18:06

回答

0

作業很多?

看看wiki page

總之,你可以實現一個堆的優先級隊列。

1

您可以使用以下比較:

import java.util.Comparator; 

public class XComparator implements Comparator<X> 
{ 
    @Override 
    public int compare(X m, X n) 
    { 

     if (m.distance < n.distance) 
     { 
      return -1; 
     } 
     if (m.distance > n.distance) 
     { 
      return 1; 
     } 
     return 0; 
    } 
} 

這裏是你將如何建立優先級隊列:

int initialCapacity = 20; 
Comparator<X> comparator = new XComparator(); 
PriorityQueue<X> queue = new PriorityQueue<X>(initialCapacity, comparator);