天天看點

優先級隊列的使用

public class PriorityQueueDemo {
    public static void main(String[] args) {
        //定義優先級隊列的,定義排序規則
        PriorityQueue<int[]> queue = new PriorityQueue<int[]>(new Comparator<int[]>() {
            //如果結果小于0,則o1排在前面
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[0] - o2[0];
            }
        });
        //擷取排在首位的元素
        queue.peek();
        //擷取并删除排在首位的元素
        queue.poll();
        //添加元素
        queue.add(new int[]{1,2});
        //周遊所有元素
        for(int[] arr : queue) {
            
        }
        //轉換為數組(這裡因為T是一維數組,所有轉換的結果為數組的數組,即二維數組)
        //這種方式同樣适用于ArrayList、LinkedList等集合
        int[][] ints = queue.toArray(new int[queue.size()][]);
    }
}
           

繼續閱讀