Java优先级队列是如何工作的? [复制]

2023-11-29

简而言之,我正在实现一个图表,现​​在我正在研究 Kruskal,我需要一个优先级队列。我对优先级队列的定义是具有最小键的元素将排在第一位?这是错误的吗?因为当我在队列中插入加权边(或数字)时,它们最终不会被排序。

PriorityQueue<Integer> tja = new PriorityQueue<Integer>(); 
tja.add(55);
tja.add(99); 
tja.add(1); 
tja.add(102);
tja.add(54);
tja.add(51);
System.out.println(tja);

那会打印出这个; [1、54、51、102、99、55]。这没有像我希望的那样排序!是的,我做了一个比较器,它进入优先级队列,从边缘对象中提取数字并基于该 int 进行比较。所以这应该可行,或者我完全误解了这个数据结构如何工作的整个概念?


System.out.println 正在调用 toString() 方法,该方法使用迭代器,不能保证遵循自然顺序。来自docs:“方法 iterator() 中提供的迭代器不保证以任何特定顺序遍历优先级队列的元素。”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java优先级队列是如何工作的? [复制] 的相关文章

  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • ld 在 OSX Leopard 上找不到 X11 库

    我有一个在 Linux 上运行的非常基本的 X11 应用程序 我试图在 OSX 10 5 8 下编译它 我已经安装了X11和X11 SDK 并修改了makefile如下 CFLAGS L usr X11 lib I usr X11 incl
  • 如何从DataFrame中获取Array[Seq[String]]?

    如何通过DataFrame cc into Array Seq String val factors ccCols split val cc dataset select factors head factors tail 我尝试过这种方式
  • 扩展 Typescript 中的内置类型

    我有以下结构 project types global d ts string d ts wdio d ts src Models Resources Components Extensions string ts tsconfig jso
  • 使用 CURRENT_TIMESTAMP 的 Rails 5.2 和 Active Record 迁移

    我有一些属性需要有默认值 我已经设置了迁移以在数据库中设置默认值 如下所示 class AddDefaultsToModel lt ActiveRecord Migration 5 2 def change change column po
  • 如何使用 Perl 动态获取 Web 内容?

    这有点棘手 我猜这个网页使用某种 AJAX 来根据搜索查询提取内容 当我在 Perl 中使用 get 获取页面时 它会获取 php html 后面的脚本代码 但不会获取手动搜索查询时显示的结果 我需要能够获取结果页面的内容 无论如何 在 P
  • iOS 中的视频编辑问题

    我目前正在开发一个 iOS 应用程序 它可以合并所需数量的视频 一旦用户点击按钮来合并视频 视频就会被合并 然后使用 AVPlayer 进行播放 如下所示 CMTime nextClipStartTime kCMTimeZero NSInt
  • fetchUuidWithSdp 始终给出缓存的 UUID

    我正在编写一个应用程序 其中我必须在选定的设备上进行服务发现 但每当我执行 fetchUuid 时 它总是为我提供远程设备上缓存的 UUID 这就是我正在尝试的 public boolean UUIDsearch BluetoothDevi
  • Google Cloud Storage Python list_blobs() 不打印对象列表

    我是 Python 和 Google Cloud Storage 新手 我正在编写一个 python 脚本 以使用 Google Cloud Python 客户端库从 Google Cloud Storage 存储桶获取文件列表 而 Buc
  • MvvmCross UITextField 自定义绑定

    所以我试图在 MvvmCross 中实现 UITextField 的自定义绑定 几乎遵循以下方式绑定软件键盘上的 GO 键 即尝试绑定一个文本字段 以便在点击键盘上的 完成 按钮时自动触发事件 因此绑定到ShouldReturn 我还需要绑
  • Neo4j“没有依赖项满足类型类 org.neo4j.kernel.api.index.SchemaIndexProvider”

    Neo4j 社区 2 3 3 Linux Ubuntu 14 04 尝试运行一个使用 Kafka 主题的 Java 应用程序 在查询 Neo4j 时处理其消息 并将它们写入另一个 Kafka 主题 hduser ubuntu java ja
  • GridView - 在空数据源上显示标题

    在 C 中 即使数据源为空 如何仍然显示 gridview 的标题 我不会自动生成列 因为它们都是预定义的 目前我正在做的事情如下 从存储过程中获取 DataTable 然后设置 gridview 的 DataSource 然后调用 Dat
  • 将 css、js 或其他内容从部分视图添加到视图头

    我发现了一些与此相关的问题 但通常有很多不同的答案 而且它们看起来都非常混乱和复杂 如果这就是需要做的 那么好吧 我最好坐下来解决它 我想知道最简单 最有效的方法是将内容从部分视图添加到您的头脑中 我需要这样做的原因是我需要在每个页面上使用
  • 当所有 Readline on('line') 回调完成时退出流程

    我有一个 Node v10 14 1 程序 它使用以下命令逐行读取 CSV 文件读取线接口 My on line is an async回调执行一些从数据库读 写的操作 因此我使用async await来处理承诺 该程序感兴趣的代码块的简短
  • 更新oracle中的json值

    我在表中有一个列以 json 格式存储数据 例如 柱子 select jsoncol from table 它给 y 4 n 0 default 4 当我尝试时 select json value jsoncol n from table
  • 记录集过滤器的问题

    我在旧版 ASP Classic 代码中的 ADO 记录集上使用筛选器时遇到问题 并且我试图了解我想要执行的操作是否不受支持 或者我是否只是做错了 我有一个项目记录集 它们的状态为 1 活动 或 0 非活动 以及一个可选的 End Date
  • 算术赋值运算符 - 左侧仅计算一次

    正如标题所说 我在一些C讲义中发现了这样一句话 我无法发明任何例子来证明这句话 在我看来 每个赋值操作都会被评估一次 因为当我们希望它被评估多次时 我们会放入一个循环中 那我还缺少什么呢 我已经搜索过 但在这里找不到答案 C says C9
  • 删除Python中所有子进程的输出而无需访问代码

    在Python中我正在使用 sys stdout None 在一些我无法控制的电话之前 这些调用可能会调用一些写入标准输出的子进程 如何避免此子进程调用写入标准输出 同样 我不拥有调用子流程的代码的所有权 看来 subprocess Pop
  • Java中两个图像之间的碰撞检测

    我正在编写的游戏中显示了两个角色 玩家和敌人 定义如下 public void player Graphics g g drawImage plimg x y this public void enemy Graphics g g draw
  • javascript 对象文字使用它自己的字段

    我想创建一个包含特定组件的整个配置的对象 我也想这样 var ObjectConfig fieldKeys name Obj name state Obj state color Obj color templates basicTempl
  • Java优先级队列是如何工作的? [复制]

    这个问题在这里已经有答案了 简而言之 我正在实现一个图表 现 在我正在研究 Kruskal 我需要一个优先级队列 我对优先级队列的定义是具有最小键的元素将排在第一位 这是错误的吗 因为当我在队列中插入加权边 或数字 时 它们最终不会被排序