首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何根据每个队列的内容值看两个Java队列是否相等?

如何根据每个队列的内容值看两个Java队列是否相等?
EN

Stack Overflow用户
提问于 2019-03-18 05:01:30
回答 1查看 0关注 0票数 0

我想实现一个equals的覆盖,它根据它们比较两个Java Queue对象,每个对象的内容都相等(按值)。

我可能会破解一些代码,但肯定有人已经优雅地解决了这个问题。谷歌搜索没有出现任何结果,所以我接下来来到这里。

我很感激任何建议。我也需要对ArrayList和HashMap集合做同样的事情。

BTW,对于equals(),我使用它作为我的向导:http//www.javapractices.com/topic/TopicAction.do?Id = 17

它提供了一些提示,但显然我需要更多的帮助来收集。集合中包含的类型根据该链接的建议覆盖equals()。

EN

回答 1

Stack Overflow用户

发布于 2019-03-18 14:40:11

java.util.Queue的JavaDoc已经说明了问题:

队列实现通常不定义基于元素的方法equals和hashCode版本,而是从Object类继承基于身份的版本,因为基于元素的相等并不总是为具有相同元素但具有不同排序属性的队列定义良好。

因此,如果要根据包含的对象进行操作,则需要自己实现逻辑(或重用某些库)。

例如,对于ArrayList,您只需调用ArrayList.equals()

对于队列,我会采用实用的方法,使用eg java.util.concurrent.LinkedBlockingQueue.toArray()然后使用将它们转换为数组Arrays.equals(queue1AsArray,queue2AsArray);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档