首页 >Java >java教程 >ArrayList 的 `contains()` 方法如何评估对象相等性?

ArrayList 的 `contains()` 方法如何评估对象相等性?

Patricia Arquette
Patricia Arquette原创
2024-12-14 00:33:10174浏览

How Does ArrayList's `contains()` Method Evaluate Object Equality?

ArrayList 在 contains() 方法中对对象的求值

ArrayList 是 Java 中高度利用的数据结构。它的关键方法之一 contains() 提供了在列表中搜索对象的能力。一个常见的问题是关于此方法如何确定两个对象是否相等。

equals() 方法的作用

ArrayList 合并了 List 接口,该接口定义了包含() 方法。根据 List 接口规范, contains() 方法调用 equals() 方法来比较对象是否相等。

默认 equals() 行为

默认情况下, equals() 方法比较对象的引用相等性,这意味着仅当对象引用同一对象实例时才被视为相等。此行为不适合大多数自定义类,其中相等性应基于对象的属性。

重写自定义类的 equals()

实现语义相等您的自定义类,您需要重写 equals() 方法。在您的示例中,您提供了 equals() 的实现,该实现根据 Thing 类的 value 属性进行比较。

示例评估

使用您提供的实现equals(),让我们评估 contains() 方法:

ArrayList<Thing> basket = new ArrayList<>();
Thing thing = new Thing(100);
basket.add(thing);
Thing another = new Thing(100);
basket.contains(another); // true

contains() 方法返回 true,因为重写的 equals() 方法比较 thing 和 another 的值属性并确定它们相等。

因此,为了使 contains() 方法能够根据对象的属性正确识别对象,必须重写equals() 方法并提供有意义的比较实现。

以上是ArrayList 的 `contains()` 方法如何评估对象相等性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn