我希望优先级队列auto能够按对象的方式按升序排序其元素。值。 "条目"是我的一个自定义类。 目前我正是这样做的:
body{margin: auto;
padding: 0px;
background: url(images/bg.jpg) no-repeat center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;}
自定义类:条目
static Comparator<Entry> comparator = new MindistComparator();
static PriorityQueue<Entry> listH = new PriorityQueue<Entry>(10, comparator);
public class MindistComparator implements Comparator<Rtree.Entry> {
@Override
public int compare(Rtree.Entry o1, Rtree.Entry o2) {
if(o1.getMindist() < o2.getMindist()){
return -1;
}
if(o1.getMindist() > o2.getMindist()){
return 1;
}
return 0;
}
}
我通过运行来衡量执行时间:
public static class Entry{
private Node node;
private Double mindist;
public Entry(Node node, Double mindist){
this.node = node;
this.setMindist(mindist);
}
public void setMindist(Double mindist) {
this.mindist = mindist;
}
public Double getMindist() {
return mindist;
}
}
几次(让我们说1000。)。
我可以通过上面的代码获得正确的输出。但是这个过程仍然需要比我预期的更长的时间。我正在寻找一种更有效的方法来对优先级队列进行排序。 先谢谢!