Java通过指定值对对象的优先级队列进行排序的有效方法

时间:2017-05-27 14:15:56

标签: java sorting priority-queue

我希望优先级队列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。)。

我可以通过上面的代码获得正确的输出。但是这个过程仍然需要比我预期的更长的时间。我正在寻找一种更有效的方法来对优先级队列进行排序。 先谢谢!

0 个答案:

没有答案