首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java:对队列进行排序

Java:对队列进行排序
EN

Stack Overflow用户
提问于 2018-12-12 05:27:04
回答 2查看 0关注 0票数 0

我正在为队列类型创建一个包装器,但每次添加元素时,我都要对内部的所有内容进行排序。大多数情况下它将是整数。我对Collections框架不太熟悉,有什么简单的解决方案吗?

代码语言:javascript
复制
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();
    }
}
EN

Stack Overflow用户

发布于 2018-12-12 14:14:05

你确定这是你想要的吗?

每次添加元素时对所有内容进行排序似乎并不明智。

也许你真的想要一个PriorityQueue?

如果每次添加一个元素,你重新整理整个元素,你必须非常小心的实现,最终不会导致O(n.log(n))插入的复杂性......这是非常非常糟糕的。

根据用于支持Queue的实际数据结构,您可以做得比这更好,但它依赖于底层实现,我不建议这样做。

优先级队列允许及时排队和出列O(log(n)),这对于您必须按随机插入顺序维护的结构非常有效。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档