【问题标题】:How to put array's data directly into PriorityQueue如何将数组的数据直接放入 PriorityQueue
【发布时间】:2014-08-01 19:40:07
【问题描述】:

如何将数组的数据直接放入实现Queue接口的PriorityQueue

ContestantFilter [] contestantFilter = new ContestantFilter [50];
contestantFilter [0] = new ContestantFilter("Agnesy Pricillia","IF110026");
contestantFilter [1] = new ContestantFilter("Ellen Shie ","IF110103");
contestantFilter [2] = new ContestantFilter("Wilma Yue Gunawan","EL110021");
.................
.................

Queue<ContestantFilter> queue = new PriorityQueue<ContestantFilter>(1,
                new Comparator<ContestantFilter>() {
                     @Override
                    public int compare(ContestantFilter t1, ContestantFilter t2) {
                        return t1.getID().compareTo(t2.getID());}});

我试过了

for(ContestantFilter c : contestantFilter ){ queue.add(c);}

但它很慢。

类似:

queue = ((Queue<ContestantFilter >) Arrays.asList(contestantFilter );

投射不起作用。

【问题讨论】:

    标签: java collections queue


    【解决方案1】:

    在创建队列实例后使用PriorityQueue#addAll 方法:

    //... is a replacement for your custom Comparator<ContestantFilter>
    Queue<ContestantFilter> queue = new PriorityQueue(...);
    queue.addAll(Arrays.asList(contestantFilter));
    

    【讨论】:

    • 这不是directly 方法。它首先将数组转换为列表。当然,即使在 Java 11 中也没有 directly 方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2018-08-10
    • 1970-01-01
    相关资源
    最近更新 更多