ArrayList の contains() メソッドのオブジェクト比較について
ArrayList の contains() メソッドは、指定されたオブジェクトがリスト内に存在するかどうかを評価します。オブジェクトの同等性を判断するとき、ArrayList はオブジェクトのクラス内で定義された equals() メソッドを利用します。
次のシナリオを考えてみましょう。整数値を持つ Thing オブジェクトを作成し、それを ArrayList に追加します。その後、同じ値を持つ別の Thing オブジェクトを作成した場合、contains() メソッドはそれらを同等のものとして識別しますか?
実装上の考慮事項
contains() メソッドでは、 trueを返す場合、Thingクラス内のequals()メソッドが適切に実装されている必要があります。この場合、equals() メソッドはオブジェクト間の value インスタンス変数を正しく比較し、それらが同一であれば true を返します。
結論
contains() メソッドin ArrayList は、オブジェクトの比較をオブジェクトのクラスで定義されている equals() メソッドに委任します。関連するインスタンス変数を比較するためにequals()を実装することにより、ArrayList操作においてオブジェクトが等しいか否かを正しく識別できるようになります。
以上がArrayList の「contains()」メソッドはオブジェクトの等価性を使用しますか、それとも参照の等価性を使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。