当前位置: 首页 > 知识库问答 >
问题:

添加到PriorityQueue[重复]

松德曜
2023-03-14

为此:

    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]

共有1个答案

司寇安宜
2023-03-14

任何地方都没有写过toString实现为PriorityQueue按顺序返回它们。其实问题是:

  • PriorityQueue不提供toString()实现,因此使用了AbstractCollection::toString()。
  • AbstractCollection::toString()使用迭代器()方法打印项(因此通过调用Next()hasNext()
  • 关于PriorityQueu的留档e::迭代器声明:返回此队列中元素的迭代器。迭代器不会以任何特定的顺序返回元素。

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

 类似资料:
  • 有这样的东西: 工作正常/图像正常上载comment.php。 下面是相同的表单,但使用了jquery Post。工作正常,但javascript看不到图像... 有什么方法可以在脚本中添加一些我的comment.php会看到的图像吗?

  • 我已经重定向到网站的主页: 但是如果您键入,则重定向到但我需要立即重定向到

  • 我有一个来自excel电子表格的数据框,其中我找到了每个域出现的频率。我想添加域频率计数到它的相应域。 下面是查找频率并尝试将其添加到相应域的代码。 当我从数据帧打印出频率时:

  • 我想添加在从文件,我的文件包括: ,但当我运行它路径不添加时,我键入。 但当我输入terminal时,它会添加到我的路径中。 我的档案有什么遗漏吗?

  • 我有下一个代码: 它可以编译,但在运行时我有不支持的操作异常。为什么会发生这种情况?

  • 我有一些很奇怪的问题。我想调用名为< code>create的方法,但不幸的是服务器抛出错误,但我不知道为什么。这是我的样本Rest控制器 } 我不能添加用户,因为服务器抛出“内部服务器错误”,但我不知道,为什么。 编辑 操作。我忘了。这是我的Tomcat错误日志