Java에서 등가 클래스를 구현하는 간단한 방법은 무엇입니까? 그 목적을위한 도서관이 있습니까?Java에서 동등 클래스를 구현하는 방법은 무엇입니까?
귀찮은 부분은 효율적이고 비 순진한 "등가"연산자를 작성하는 방법입니다.
Let S = {x,y,z,w,h}
. S의 등가 클래스에 대해 x->1, y->1, z->1, w->2, h->2
매핑을 사용하면 동일 균등 클래스 인 x->10, y->10, z->10, w->20, h->20
매핑을 고려해야합니다.
집합 S의 추기경이 커질 때 순진한 "균등"연산자는 빠르게 시간이 많이 걸릴 수 있습니다.
간단한 방법은 무엇입니까? 어떤 생각?
다음과 같이 EDITED]을 명확히하기 위해, 특별한 문제가 공식화 될 수
는 S가 비어 있지 않은 세트라고하자. 우리는 M에서 V에서 정수로의 부분 매핑 세트를 나타냅니다. 또한 아래에 정의 된 이진 관계 \ 시뮬레이션은 등가 M.
에 관계 M1 용및 m2 M의 두 부분 매핑을 도출 보여 비교적 쉽게 M1 \ SIM m2, 경우에만,
- V의 임의의 a에 대해, m2 (a)가 정의 된 경우에만 m1 (a)가 정의되고, V의 임의의 a, b에 대해
, m1 (a) 및 m1 (b)가 모두 동일하게 정의된다 m2 (a)와 m2 (b) 둘 다 동일한 정수 값 'z2'( 'z1'과 다를 수도 있고 같지 않을 수도 있음)에 대해 이 정의 된 경우에만 정수 값 'z1'
예. A-> 9
, B-> 9, 비스> 1 \ SIM A-> 10, B-> 10, 비스> 0
하지만하지 정확한 대답 이다
a-> 5 \ sim b-> 9
감사합니다.
여기서 동등성의 정의는 무엇입니까? –
내 편집 된 부분보기. – zell
왜 요소를 정수로 모두 매핑합니까? 예를 들어, Set>을 사용하여 등가 관계를 나타낼 수 없습니까? 그렇게하면 equals()를 '무료로'올바르게 구현할 수 있습니다. –