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

Java中的深度比较集

隆长卿
2023-03-14
问题内容

我在Java中有两个比较Item对象的集合。有没有一种方法可以比较集合,以便调用Itemequals方法而不仅仅是比较引用?


问题答案:

的每个孩子都AbstractSet这样做。查看文件

public boolean equals(Object o)

比较指定对象与此设置的相等性。如果给定对象也是一个集合,两个集合的大小相同,并且给定集合的每个成员都包含在此集合中,则返回true。这样可以确保equals方法可在Set接口的不同实现中正常工作。此实现首先检查指定的对象是否为此集合;如果是这样,则返回true。然后,它检查指定的对象是否是一个集合,其大小与此集合的大小相同;如果不是,则返回false。如果是这样,则返回containsAll((Collection)o)。

因此,实际上这依赖于contains实现(由调用containsAll(..))。对于HashSet(至少)这是您要寻找的。



 类似资料:
  • 问题内容: 我试图通过将结果对象与原始对象进行比较来验证例程的序列化和反序列化。这些例程可以序列化任意的和深层嵌套的类,因此,我需要一个比较例程,该例程可以提供原始实例和最终实例,并反射性地遍历每种值类型并比较这些值,然后迭代地浸入引用类型以比较值。 我已经尝试过Apache Commons Lang,但这似乎并没有进行很深入的比较,它只是比较引用类型是否相等,而没有深入研究它们: 以下代码说明了

  • Java在进行比较时抛出的错误是: 然后比较的方法(比较器 你知道发生了什么事吗?

  • 我想知道Hashmap和ArrayList中的搜索元素有什么比较吗?我遇到的情况如下:我将有少量的元素(通常4-6个,最多10个)。我有这样一个元素的整数id,我将得到很多调用,这些调用将使用Id搜索元素并在这个元素上执行一些方法。这看起来是hashmap的一个很好的用例,但是我开始怀疑像ArrayList这样的线性集合在这里会不会更好。例如因为CPU缓存。为了在地图上使用搜索,我需要自动装箱来从

  • 我正在尝试将ArrayList转换为Treemap,所以我编写了一个比较各种方法的基准: 1)并行流中的toMap 2)toMap在流中 3)流中forEach 主 大小为10_000的输出如下 “for loop”与预期一样是最慢的 回到正题,为什么当arraylist列表很大时,for each in parallel steam会失败? 运行i7 2670QM,因此线程池大小应为8

  • 我有一个关于compareTo函数如何帮助比较器排序的问题,即o1。比较(o2)与o2。比较(o1) 如果两个字符串相等,则此方法返回0,否则返回正值或负值。如果第一个字符串在词典上大于第二个字符串,则结果为正,否则结果为负。 上面的陈述很简单,但是为什么o1.compare(o2)会给我一个升序,而o2.compare(o1)给了我一个降序? 如果我有整数值“5,10,3”,我得到3,5,10和

  • 问题内容: 我想从那些在Java中使用原始相等性有更多经验的人那里获得一些建议。使用两次双打,由于可能的舍入误差而不够。 我的问题是: Java 在某种程度上处理舍入错误吗?如1.7文档中所述,如果数值等于,则返回值。有人确定它们在数值上相等是什么意思吗? 对某些增量值使用相对误差计算,您会建议使用通用的增量值(不是特定于应用程序)吗?请参见下面的示例。 以下是考虑相对误差的用于检查相等性的通用函