2011-04-15 41 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);