栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java:从优先级队列中得出奇怪的队列顺序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java:从优先级队列中得出奇怪的队列顺序

您实现的方法

compare
是错误的,并且仅当您以假定的非常特定的方式调用它时才有效。但是,您不知道
PriorityQueue
实际调用什么上下文
compare
compare
可以在数据结构内部的现有元素上调用该函数,而不是在新元素上调用,反之亦然。

(即使您确实阅读了源代码并对其进行了跟踪并发现该特定实现以某种方式起作用,如果您希望代码可维护,也不应依赖于此。至少,您应该使自己成为可维护的。必须解释其工作原理,以完成更多工作。)

您可以使用某种计数器并将其分配为每个添加项的值,然后

compare
根据该值正确实现。

正确的实现

compare
可能如下所示:

int compare(Object x, Object y){    return x.getSomeProperty() - y.getSomeProperty();}

请注意,如果切换参数的顺序,答案也将改变。不,返回INT并 没有
一定要来自{-1,0,1}。规格要求为0,或者是负数或正数。您可以使用任意一个,只要它是正确的符号即可。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号