为什么我们需要PriorityQueue?

时间:2016-07-18 14:54:19

标签: java sorting collections

如果有LinkedList,为什么我们需要PriorityQueue。我可以使用LinkedList对队列进行排序,而不是使用PriorityQueue。 e.g。

Queue list = new PriorityQueue();
    list.add("1");
    list.add("3");
    list.add("2");
    while(list.size() > 0) {
        String s = list.poll().toString();
        System.out.println(s);
    }

我相信这段代码的工作时间太长,因为每次添加元素都会对元素进行排序。 但如果我将使用下一个代码:

Queue list = new LinkedList();
    list.add("1");
    list.add("3");
    list.add("2");
    List lst = (List)list;
    Collections.sort(lst);
    while(list.size() > 0) {
        String s = list.poll().toString();
        System.out.println(s);
    }

我认为此代码只会排序一次,使用PriorityQueue会更快。所以,在任何情况下,我可以在使用它之前对LinkedList进行一次排序,它会更快地运行。即使它在同一时间排序我并不真正需要PriorityQueue,我们真的不需要这个类。我错了吗?

0 个答案:

没有答案