带有自定义匿名比较器的 Java 优先级队列

2024-01-28

如果这是一个尝试过的问题,请原谅我,但我有点难以弄清楚。

我目前有一个节点类,每个“节点”都是迷宫中的一个正方形。我正在尝试实现 A* 算法,因此每个节点内部都会有一个 f-cost (int) 数据成员。我想知道是否有一种方法可以创建这些节点的优先级队列,并将 f-cost 变量设置为比较器?

我在网上查看了示例,但我所能找到的只是字符串优先级队列。我可以为 Node 类实现 Comparator 吗?这允许我访问存储在其中的数据成员吗?

非常感谢!


绝对地。

您可以使用PriorityQueue基于匿名Comparator传递给构造函数:

int initCapacity = 10;
PriorityQueue<Node> pq = new PriorityQueue<Node>(initCapacity, new Comparator<Node>() {
    public int compare(Node n1, Node n2) {
        // compare n1 and n2
    }
});
// use pq as you would use any PriorityQueue

If your Node类已经实现了Comparable你甚至不需要定义一个新的Comparator,因为默认情况下将使用该顺序。除非使用任何其他方法,否则将使用对象之间的自然顺序。

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

带有自定义匿名比较器的 Java 优先级队列 的相关文章

  • GO中的优先级队列

    谁能向我解释一下 我想在GO中实现一个优先级队列 接口实现来自link https golang org pkg container heap example priorityQueue 但优先级最低 我的代码 pq make Priori
  • 为 JSP 创建注销链接?

    当用户登录我的应用程序时 他提交一个要通过 Servlet 处理的表单 servlet 为用户创建一个会话 我如何创建一个链接以便用户可以注销 我似乎无法直接链接到 Servlet 如何删除会话并链接回主页 HttpSession sess
  • 如何注入“运行时”依赖项,例如登录用户,该依赖项在应用程序启动时不可用?

    我只是不明白这个 我在我的 java GWT 应用程序中使用 Gin 来进行 DI 登录屏幕集成到完整的应用程序窗口中 用户登录后 我想将用户对象注入到我创建的其他类 例如 GUI Presenters 中 因此我相信存在某种运行时依赖性
  • 有没有一种干净的方法将泛型类型的类分配给变量?

    鉴于此代码 List
  • android新手需要了解“?android:attr/actionBarSize”

    我正在经历拉尔斯 沃格尔的教程 http www vogella com articles AndroidFragments article html在使用 Fragments 时 我遇到了以下代码 android layout margi
  • 在 Java 中将字符串复制到文件的开头

    我想将一个字符串写入文件的开头 我该怎么做 我根本不知道如何添加字符串 这就是我到目前为止所做的 public static void prepend String filename String data throws IOExcepti
  • 当我打印出数组列表的索引时如何删除最后一个逗号[重复]

    这个问题在这里已经有答案了 List
  • 如何在 WebSphere Liberty Batch 中配置事务超时?

    的作用是什么javax transaction global timeout 我是否需要实施检查点 超时 中的方法检查点算法 服务器配置级别有什么东西吗 它如何与应用程序级别的设置进行交互 2016年12月2日编辑 重新设计并解释了为应用程
  • 异步不适用于控制器的抽象超类方法

    我有一个BaseRestControllerRest 控制器扩展的类 它有一个我想异步运行的方法 public abstract class BaseRestController Async someThreadPoolTaskExecut
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • 具有查找功能的优先级队列 - 最快的实现

    我正在考虑实现一个带有附加要求的优先级队列 一个查找 搜索功能 它将告诉一个项目是否在队列中的任何位置 所以函数将是 insert del min 和 find 我不确定是否应该使用堆或自平衡二叉搜索树 看来 PQ 通常是用堆实现的 但我想
  • Apache Camel - 路由中的事务

    我有一个关于 Apache Camel 的一般性问题 我无法找到聚合器是否已进行交易 如果是交易 交易是如何实现的 聚合的速度有多快 将消息发送到聚合器可以在事务中运行 您需要一个带有聚合器的持久存储来让传出消息充当事务 请参阅有关持久性的
  • CXF 增加连接池大小而不更改 http.maxConnections

    最近我被要求将 CXF 配置为与我们旧的 XFire 服务相同的参数 这些参数之一是Keep Alive timeout 60 max 20 然而 我做了一些研究 看来 CXF 使用 JVMHttpURLConnection引擎盖下的对象
  • 使用会话空闲超时进行轮询

    我对 Tomcat 中的所有应用程序使用单点登录 我的要求是 我必须轮询应从后端获取的事务状态 但它也不应该影响会话的空闲超时 有人可以建议是否可以做点什么吗 Thanx 我不知道是否有标准方法可以做到这一点 如果没有 你可以写一个过滤器
  • 在服务器上创建 Zip 文件并使用 java 下载该 zip

    我从 mkyong 获得了以下代码 用于在本地压缩文件 但是 我的要求是在服务器上压缩文件并需要下载它 任何人都可以帮忙吗 代码写入zip文件 public void zipFiles File contentFile File navFi
  • 让 subclipse 在 Ubuntu 64 和 Indigo 上工作 - 加载了不兼容的 JavaHL 库。需要 1.7.x 或更高版本

    我该如何解决 我在 ubuntu 64 上使用 Eclipse indigo 我安装了http subclipse tigris org update 1 8 x http subclipse tigris org update 1 8 x
  • 确保 MAVEN_HOME 设置正确

    这里是 Java 和 Maven 菜鸟 使用 OSX 10 8 并使用 HomeBrew 安装 Maven 1 如果我说which mvn我会得到这个 usr local bin mvn 2 如果我说echo MAVEN HOME我不会得到
  • 在android中测量不规则多边形的面积

    我正在开发一个应用程序 在其中我在地图上绘制多边形 并且我使用的地图不是谷歌 它的Mapsforge开源离线地图库 我可以通过将地理点转换为像素点来轻松在地图上绘制多边形 但在这里我想发现是不规则的多边形 为此我做了很多尝试 但它让我失败了
  • Cassandra 会话与集群 有什么可分享的?

    考虑 Cassandra 的 Session 和 Cluster 类 Java 驱动程序 我想知道有什么区别 在 Hibernate 中 每次都会创建一个会话并共享会话工厂 从许多来源我了解到 它被认为是创建一个会话并在多个线程之间共享它
  • Java编程编译jar

    我有一个文本文件中的java源代码 必须在源代码中输入一些自定义的硬编码变量 然后将其转换为 jar 这是可行的 但是当我运行 jar 时 找不到 Main 类 当我用 WinRAR 解压 jar 文件时 我似乎找不到错误 当我通过 cmd

随机推荐

  • 在 CFMutableDictionary 中存储 C 结构体

    由于 Core Foundation 中没有与 NSValue 对应的对象 我们该如何将 C 结构体存储在 CFMutableDictionary 中呢 首先 您可以按原样将 NSvalue 放入 CFMutableDictionary 中
  • 移动 WordPress 域

    我不敢相信移动 WordPress 域名是如此复杂 我安装了 WordPress 并使用基于 woocommerce 的主题设置了一个在线商店 安装 better wp 安全插件后 我为我的在线商店购买了一个域名 我将域名的DNS指向我的托
  • 样式表规则解释小数点后有多少位?

    所以最近我偶然发现这个答案的CSS https stackoverflow com a 17504805 457268 larger width 66 66666666 smaller width 33 333333333 这让我开始思考
  • 通过 wicket 下载 zip 文件

    我正在使用 wicket 框架 并且我已经通过 Java 代码制作了一个 zip 文件 我想要一个下载它的链接 我不知道是否可能 或者我应该通过 wicket 但不是 Java 制作 zip 文件然后有一个下载链接 看一眼ZipResour
  • 通过php更新jira中的状态

    我正在使用我构建的电子邮件客户端来更新 jira 任务 我已经成功地通过它更改了受让人和摘要 但我似乎找不到更新状态的方法 以下是我使用的代码 resolution gt id 4 update gt transitions array r
  • 不推荐使用 Int 和 Int 类型参数的恒等式

    仅供参考 这是我在 StackOverflow 上的第一个问题 而且我对 Kotlin 还很陌生 在开发一个完全使用 Kotlin 版本 1 1 3 2 的项目时 我在以下代码中看到一条警告 以及给好奇的小伙子们的评论 Code below
  • 在 scipy 中使用 L-BFGS-B 时出错

    在 scipy optimize minimize 中使用 L BFGS B 方法时 我得到一些令人费解的结果 import scipy optimize as optimize import numpy as np def testFun
  • 从列中提取第一个单词并插入到新列中[重复]

    这个问题在这里已经有答案了 我下面有一个数据框 想要提取第一个单词并将其插入到新列中 Dataframe1 COL1 Nick K Jones Dave G Barros Matt H Smith 将其转换为这样 Dataframe2 CO
  • “PyDevTerminalInteractiveShell”对象没有属性“has_readline”

    我在用Pycharm 2016 1 on CentOS7我正在测试 Show command line afterwards 我遇到了这个问题 AttributeError PyDevTerminalInteractiveShell obj
  • 何时使用 poll C 函数的 POLLOUT 事件?

    我写了一个小型 TCP 服务器socket POLLIN poll recv send 但我不知道什么时候使用POLLOUT轮询或选择writefds轮询可写事件 谁能给我一个实际用法的例子POLLOUT 通常的模式是使用非阻塞文件描述符p
  • 哪种 Java 设计模式最适合 if-else 语句(包括循环)?

    我有一个 7 8 if else 的用例 示例用例 String type List lt Entity gt entityList if type equals A ClassA a new ClassA a performTask fo
  • Laravel/lumen 5.2 从现有数据库生成迁移表

    是否可以从 lumen laravel 5 2 中的现有数据库生成迁移模式 有包吗 我将lumen连接到magento数据库 现在我需要使用eloquent 我没有时间为每个表制作迁移模型 您可以先转储数据库mysql转储 http dev
  • 在 go 中使用curl和命令

    我使用 Go 和命令来执行curl其按预期工作 curl exec Command curl https services odata org V3 northwind northwind svc out err curl Output i
  • Android - getHeight() 和 getWidth()

    我在relativeLayout中动态创建一些ImageView 但我需要尺寸根据屏幕的高度和宽度而变化 在我设置高度时 视图和布局尚未创建 这意味着getHeight and getWidth 返回 0 我查看了 StackOverflo
  • 实体框架 - 通过更改外键更新关系

    我有以下两个模型和 DbContext public class TestDbContext DbContext public IDbSet
  • 通过 SUDS 发送 xml

    我想使用 WSDL 通过 SUDS 发送我的手工构建 xml 我发现我可以这样做 xml Raw
  • MINGW64 上的堆栈测试输出乱码

    我在 Windows 10 上使用 Stack 运行 GHC 并在大部分日常工作流程中使用 Git Bash MINGW64 这包括使用 GHC 和 GHCi 它们通常工作得很好 然而 当我跑步时stack test从 MINGW64 开始
  • 子类中的 Yii 模型行为继承了 AR 模型类

    我已经实施了一个crypt可以附加到 AR 模型的行为类 以便附加属性将以加密形式存储并以解密字符串形式检索 class User extends CActiveRecord public function behaviors return
  • 我怎样才能在qt中获得当前聚焦的QLineEdit?

    我如何识别哪个QLineEdit目前的重点是qt吗 设置焦点QLinEdit我努力了 ui gt linedit gt setfocus 但它也不适合我 我该如何解决这两个问题 要识别哪个焦点控件 QlineEdit 或任何 QWidget
  • 带有自定义匿名比较器的 Java 优先级队列

    如果这是一个尝试过的问题 请原谅我 但我有点难以弄清楚 我目前有一个节点类 每个 节点 都是迷宫中的一个正方形 我正在尝试实现 A 算法 因此每个节点内部都会有一个 f cost int 数据成员 我想知道是否有一种方法可以创建这些节点的优