2017-11-22 31 views
-2

가 왜 Collection 인터페이스 equals()hashCode() 우리가 직접 왜 다시 ... Object 클래스의 방법을 사용할 수 있는가 개체 클래스의 방법을 사용할 수있을 때?이 있는가이유는 Collection 인터페이스는 equals()와 hashCode() 우리가 직접

+1

'Collection' API의 구현에는 다른 의미가 있기 때문에. –

+2

둘은 문서화 목적으로 만 존재하므로 모든 컬렉션에 대한 일반 계약이 여기에 지정됩니다. – xs0

+1

@ 카야 만, 인터페이스가 기본 구현을 변경하지 않으며 연결된 응답이이 질문과 동일하지 않습니다. – xs0

답변

1

편집의 조건을 생각하고 있습니다. Java SE는 객체 지향 라이브러리입니다. 메서드는 계약의 일부인으로 정의되며 다른 코드를 컴파일하는 데 사용할 수있는 메서드를 선언하는 것만이 아닙니다.

Collection.equals 추가 규정에 Object.equals의 계약을 정제 :

(즉 a.equals(b) 경우에만 b.equals(a) 경우) 대칭이어야 동일 Object.equals 메소드의 일반 규약에. List.equalsSet.equals 계약은 목록이 다른 목록과 동일하며 다른 집합으로 설정됨을 나타냅니다. 따라서 ListSet 인터페이스를 구현하지 않는 컬렉션 클래스에 대한 사용자 지정 메서드는이 컬렉션을 모든 목록 또는 집합과 비교할 때 false을 반환해야합니다.