>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?

contains() 메서드에서 ArrayList의 객체 평가

ArrayList는 Java에서 활용도가 높은 데이터 구조입니다. 중요한 메소드 중 하나인 contain()은 목록 내에서 객체를 검색하는 기능을 제공합니다. 이 메소드가 두 객체가 동일한지 어떻게 결정하는지에 관해 일반적인 질문이 제기됩니다.

equals() 메소드의 역할

ArrayList는 포함 항목을 정의하는 List 인터페이스를 통합합니다. () 방법. List 인터페이스 사양에 따라 contain() 메서드는 객체가 같은지 비교하기 위해 equals() 메서드를 호출합니다.

기본 equals() 동작

기본적으로, equals() 메소드는 참조 동등성을 위해 객체를 비교합니다. 즉, 객체가 동일한 객체 인스턴스를 참조하는 경우에만 동일한 것으로 간주됩니다. 이 동작은 객체의 속성을 기준으로 동일성이 결정되어야 하는 대부분의 사용자 정의 클래스에 적합하지 않습니다.

사용자 정의 클래스에 대해 equals() 재정의

의미론적 동일성을 달성하려면 사용자 정의 클래스를 사용하려면 equals() 메서드를 재정의해야 합니다. 귀하의 예에서는 Thing 클래스의 값 속성을 기반으로 비교하는 equals() 구현을 제공했습니다.

평가 예

제공된 구현 사용 equals(), contain() 메서드를 평가해 보겠습니다.

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() 메서드는 사물과 다른 것의 값 속성을 비교하여 동일한 것으로 결정합니다.

따라서 Contains() 메서드가 해당 속성을 기반으로 개체를 올바르게 식별할 수 있도록 하려면 재정의하는 것이 필수적입니다. equals() 메소드를 사용하여 비교를 위한 의미 있는 구현을 제공합니다.

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

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