当前位置: 首页 > 面试题库 >

将Java PriorityQueue更改为最大PQ

方和宜
2023-03-14
问题内容

Java标准库中的Priority Queue实现似乎是最小的Priority Queue,我感到有些困惑。为了将其变为最大,我创建了一个自定义比较器对象。

Comparator<Integer> cmp = new Comparator<Integer>()
{
    public int compare( Integer x, Integer y )
    {
        return y - x;
    }
};

我想知道是否有更优雅的解决方案。从本质上讲,我不会使用可用于实现Dijkstras等的通用优先级队列。我什至没有意识到会有反向操作的队列:/


问题答案:

使用Java的Collections.reverseOrder()比较器。

Java参考



 类似资料:
  • 如果我想将一个名为“maximum_num”的新列突变到x上,其值为5.1,4.9,4.7等,我该怎么做?(我意识到糟糕的例子,因为这里都是Sepal.Length,但如果最大值每次来自不同的cols) 我想我可以用which.max但不知道如何编织。 我也试过 如何追加包含最大行值的新列? 有dplyr esque的方式吗?对base r也很满意。

  • 问题内容: 我有一个无法访问的PC上托管的网站。我有一个上传表单,允许人们上传最大30MB的mp3文件。我的服务器端脚本是用PHP完成的。 每次尝试上传文件时,都会收到一条错误消息,声称文件超出了允许的最大大小,因此我需要增加大小。我在网络上的研究建议更改我无权访问的文件,这样将无法正常工作。其他人建议我将自定义文件添加到我的根目录中,该文件无效。还有其他建议吗? 问题答案: 您需要设置的值,并在

  • 我已经在eclipse中安装了以及用于打开IBM format堆转储的插件。 当我试图从eclipse中用打开堆转储时,我得到一个消息框错误,它说: “从'C:\UserData\heapdump.44124802.212242.6876.0003.phd'解析堆转储”过程中出现内部错误。Java堆空间

  • 问题内容: 我的Mysql数据库中有一个表,该表用于身份验证。现在,我需要使身份验证区分大小写。在谷歌搜索中,我已经意识到Mysql列对于搜索操作是不区分大小写的(与Oracle相反),并且在创建表时可以通过指定“ binary”即更改默认行为。 有人可以告诉我如何更改Mysql中的表以将“二进制”添加到数据库的现有列吗? 谢谢! 问题答案:

  • 问题内容: 我有以下代码: 如何更改此代码: 使其可以像JSONP一样工作…这完全不同吗? 问题答案: 实际上,您只需要添加,剩下的就由jQuery完成。

  • 问题内容: 我有一个仓库表,里面有16吨数据。我有一些整数列。对于我们编写的每个查询,我们都必须将它们转换为BIGINT,因为SUM太大而无法容纳在INT中。 现在,我们正在开发一个新的数据集市。因此,我们认为,为什么不将所有这些列都更改为BIGINT呢?对于新的查询集,我们不必担心。 由于数据已经加载,因此我认为我将使用Management Studio并更改数据类型。但是我首先得到一个警告: