相关疑难解决方法(0)

元素的优先级队列排序

为什么优先级队列的元素默认按照自然顺序排序,因为它没有实现类似的接口.

文档中,它说元素是基于自然顺序排序的,但我找不到任何关于equals方法或类似的方法.它内部发生了什么?

所有已实现的接口:Serializable,Iterable,Collection,Queue.

如果它实现了可比性,那么为什么它不能在上面的行中说出来

例:

    public static void main(String[] args) {
        PriorityQueue<String> pq = new PriorityQueue<String>();
        pq.add("2");
        pq.add("4");
        System.out.println(pq); //prints [2, 4]
        pq.offer("1");
        System.out.println(pq); // prints [1, 4, 2]
        pq.add("3");
        System.out.println(pq); // prints [1, 3, 2, 4]
    }
}
Run Code Online (Sandbox Code Playgroud)

第三个打印语句也打印[1,3,2,4]而不是打印[1,2,3,4].为什么?它应该是自然的顺序吗?

java scjp

5
推荐指数
2
解决办法
9629
查看次数

标签 统计

java ×1

scjp ×1