new LinkedList<>(...) 无法保证集合数据的顺序

问题描述 投票:0回答:1

我使用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]; //什么???

我在谷歌上搜索但找不到明确的答案 请帮助我

java collections
1个回答
0
投票

来自

LinkedList#(Collection)
的文档:

构造一个包含指定集合元素的列表,按照集合的迭代器返回的顺序[强调已添加]

来自

PriorityQueue
的文档:

方法

Iterator
[...]
中提供的 iterator() 保证以任何特定顺序遍历优先级队列的元素。

请注意,链接和引用来自 Java 21 的 Javadoc,但也适用于 Java 8。

© www.soinside.com 2019 - 2024. All rights reserved.