有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果同一类的对象相同,则为java

我有一个java类,它有15个数据成员。 我有两个这个类的对象。 我想检查这两个物体是否相同。 比较每个数据成员非常耗时。 有更好的方法吗


共 (2) 个答案

  1. # 1 楼答案

    根据你的评论

    Suppose i have 1000 objects with unique id stored in one table.same 1000 objects comes again via some scheduler and it checks whether the values have been changed or not.

    据我所知,每个对象将与其存储的版本进行一次精确的比较。在这个用例中,没有比比较字段更好的方法了

    人们想到的一个想法是使用从字段值派生的哈希代码。如果散列码不同,字段也必须不同。这只需要一个整数比较。如果散列码相同,仍然需要检查字段值,因为可能会发生冲突:不同的对象产生相同的散列码

    但我想,在任何一步中,相当大比例的对象都没有改变它们的值。因此,引入散列码只能改善“已更改”的情况,计算一个散列码可能比比较两个对象花费更长的时间

  2. # 2 楼答案

    如果你的意思是“它需要大量的CPU时间”——不需要。它只是比较了一大堆位,这就是。。确切地说,你想做什么,所以,就这么做:比较每个领域

    如果你的意思是“这需要大量的编写”,IDE可以自动生成这些东西,不过你必须查看它,维护它,当你添加一个字段时会遇到麻烦,并且忘记更新那些模板。因此,您可以使用Project Lombok^{}^{}特性