gpt4 book ai didi

java - 添加到 PriorityQueue

转载 作者:行者123 更新时间:2023-12-02 02:51:13 25 4
gpt4 key购买 nike

为此:

    PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(2);
System.out.println(pq);
pq.add(4);
System.out.println(pq);
pq.add(1);
System.out.println(pq);

我得到这个输出:

[2]
[2, 4]
[1, 4, 2]

为什么第三行的输出不是 [2,4,1]

最佳答案

没有任何地方提到 PriorityQueuetoString 实现按顺序返回它们。其实问题在于:

  • PriorityQueue 不提供 toString() 实现,因此使用 AbstractCollection::toString()
  • AbstractCollection::toString() 使用 iterator() 方法打印项目(因此通过调用 next()hasNext ())
  • 有关 PriorityQueue::iterator 的文档指出:返回对此队列中元素的迭代器。迭代器不会以任何特定顺序返回元素。

所以基本上 toString 依赖于 iterator(),它不提供元素的有序 View 。

关于java - 添加到 PriorityQueue<Integer>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43820209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com