ホームページ >Java >&#&チュートリアル >ArrayList の「contains()」メソッドはオブジェクト参照または値を比較しますか?

ArrayList の「contains()」メソッドはオブジェクト参照または値を比較しますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-02 06:28:10302ブラウズ

Does ArrayList's `contains()` Method Compare Object References or Values?

ArrayList の contains() メソッドがオブジェクトの同等性を判断する方法

質問:

ArrayList について考えてみる整数で構築された「thing」という名前のオブジェクトを含む100. 'another' という名前の 2 番目のオブジェクトが同じコンストラクター入力で作成された場合、ArrayList の contains() メソッドは 'thing' と 'another' を等しいものとして評価しますか?

答え:

ArrayList の contains() メソッドは、equals() メソッドに依存してオブジェクトの同等性を判断します。デフォルトでは、このメソッドはコンテンツではなくオブジェクト参照を比較します。

提供されたコード スニペットでは、Thing クラスは、equals() メソッドをオーバーライドして、値フィールドを比較します。したがって、contains() メソッドは、'thing' と 'another' が同じオブジェクト参照であるかどうかに関係なく、同じ値を持つ場合に true を返します。

等価性チェックの実装:

はい、提供されている Thing クラスの実装は、値に基づいて equals() メソッドをオーバーライドし、contains() が true を返すようにします。同じ値を持つオブジェクトの場合。オブジェクト参照ではなくコンテンツ (値フィールド) を比較するには、equals() をオーバーライドする必要があります。

以上がArrayList の「contains()」メソッドはオブジェクト参照または値を比較しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。