>Java >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의 contain() 메서드가 객체 동등성을 결정하는 방법

질문:

ArrayList 고려 정수 100으로 구성된 'thing'이라는 개체를 포함합니다. 'another'라는 객체가 동일한 생성자 입력으로 생성된 경우 ArrayList의 contain() 메서드는 'thing'과 'another'를 동일하게 평가합니까?

답변:

ArrayList의 contain() 메소드는 객체 동등성을 결정하기 위해 equals() 메소드를 사용합니다. 기본적으로 이 메서드는 해당 콘텐츠가 아닌 개체 참조를 비교합니다.

제공된 코드 조각에서 Thing 클래스는 값 필드를 비교하기 위해 equals() 메서드를 재정의합니다. 따라서 동일한 객체 참조인지 여부에 관계없이 'thing'과 'another'가 동일한 값을 갖는 경우 contain() 메서드는 true를 반환합니다.

동일성 검사 구현:

예, 제공된 Thing 클래스 구현은 값을 기반으로 equals() 메서드를 재정의하여 동일한 값을 가진 객체에 대해 contain()이 true를 반환하도록 만듭니다. 객체 참조 대신 내용(값 필드)을 비교하려면 equals() 재정의가 필요합니다.

위 내용은 ArrayList의 `contains()` 메소드는 객체 참조 또는 값을 비교합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.