我使用java 8 不知道为什么这不能保证收集数据的顺序
PriorityQueue<Place> firstQue = new PriorityQueue<>(Comparator.comparingInt(o -> o.v));
//add data into firstQue
Queue<Place> que = new LinkedList<>(firstQue);
第一个队列 = [1, 1, 2, 4];
que = [1, 2, 1, 4]; //什么???
我在谷歌上搜索但找不到明确的答案 请帮助我
LinkedList#(Collection)
的文档:
构造一个包含指定集合元素的列表,按照集合的迭代器返回的顺序[强调已添加]。
PriorityQueue
的文档:
方法
Iterator
[...]中提供的iterator()
不保证以任何特定顺序遍历优先级队列的元素。
请注意,链接和引用来自 Java 21 的 Javadoc,但也适用于 Java 8。