具有整数的优先级队列

时间:2014-02-13 21:28:48

标签: java priority-queue

想知道是否有办法使用优先级队列来获取带有随机数的Array,然后根据Biggest到最小或最小到最大的内容删除它们。或者如果它的数字是3。

你会使用比较器吗?

2 个答案:

答案 0 :(得分:0)

如何使用标准Java库执行此操作:

    Integer[] ints = new Integer[]{3,2,1};

    // For reverse of natural order i.e. largest to smallest
    // If you want the natural order don't use the Collections.reverseOrder() comparator
    Queue<Integer> queue = new PriorityQueue<Integer>(ints.length, Collections.reverseOrder());
    queue.addAll(Arrays.asList(ints));

    while (queue.size() > 0) {
        System.out.println(queue.poll());
    }

答案 1 :(得分:0)

要添加到xlm的答案,在从随机数组创建优先级队列并想要删除某个元素(例如3)之后,您只需调用remove()中的PriorityQueue方法即可类

queue.remove(3);

如果3不是队列中的最大数字,那么这不一定会像poll()那样从队列头中删除元素。