ホームページ >Java >&#&チュートリアル >ArrayList の「contains()」メソッドはオブジェクト参照または値を比較しますか?
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 サイトの他の関連記事を参照してください。