我正在为队列类型创建一个包装器,但每次添加元素时,我都要对内部的所有内容进行排序。大多数情况下它将是整数。我对Collections框架不太熟悉,有什么简单的解决方案吗?
public class Round<Type> {
private Queue<Type> qe;
public Round(){
this.qe = new LinkedList<Type>();
}
public void push(Type p){
this.qe.offer(p);
//Collections.sort(this.qe); Here I want to sort this
}
public Type pop(){
return this.qe.poll();
}
}
发布于 2018-12-12 14:14:05
你确定这是你想要的吗?
每次添加元素时对所有内容进行排序似乎并不明智。
也许你真的想要一个PriorityQueue?
如果每次添加一个元素,你重新整理整个元素,你必须非常小心的实现,最终不会导致O(n.log(n))
插入的复杂性......这是非常非常糟糕的。
根据用于支持Queue的实际数据结构,您可以做得比这更好,但它依赖于底层实现,我不建议这样做。
优先级队列允许及时排队和出列O(log(n))
,这对于您必须按随机插入顺序维护的结构非常有效。
https://stackoverflow.com/questions/-100006267
复制相似问题