带有自定义匿名比较器的 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 优先级队列 的相关文章

  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • 在 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 数据成员 我想知道是否有一种方法可以创建这些节点的优