IComparator 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다.
[Android.Runtime.Register("java/util/Comparator", "", "Java.Util.IComparatorInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public interface IComparator : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Comparator", "", "Java.Util.IComparatorInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type IComparator = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 파생
- 특성
- 구현
설명
일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다. 정렬 순서를 정확하게 제어할 수 있도록 비교자를 정렬 메서드(예: 또는Arrays#sort(Object[],Comparator) Arrays.sort
)에 Collections#sort(List,Comparator) Collections.sort
전달할 수 있습니다. 비교자를 사용하여 특정 데이터 구조(예: SortedSet 정렬 집합 또는 SortedMap 정렬된 맵)의 순서를 제어하거나 비교 가능한 자연 순서가 없는 개체의 컬렉션에 대한 순서를 제공할 수도 있습니다.
요소 S
집합에 대해 비교자가 c
적용한 순서는 모든 요소와 동일한 부울 값 e1.equals(e2)
e1
이 있는 경우에만 c.compare(e1, e2)==0
같음과 e2
S
일치한다고 합니다.
정렬된 집합(또는 정렬된 맵)을 정렬하기 위해 같음과 일치하지 않는 순서를 적용할 수 있는 비교자를 사용할 때는 주의해야 합니다. 명시적 비교자를 c
사용하여 정렬된 집합(또는 정렬된 맵)을 집합 S
에서 그린 요소(또는 키)와 함께 사용한다고 가정합니다. 지정된 c
S
순서가 같음과 일치하지 않으면 정렬된 집합(또는 정렬된 맵)이 "이상하게" 동작합니다. 특히 정렬된 집합(또는 정렬된 맵)은 용어로 정의된 집합(또는 맵)에 대한 일반 계약을 위반합니다 equals
.
예를 들어 비교자를 사용하여 빈 요소에 두 개의 요소를 a
b
(a.equals(b) && c.compare(a, b) != 0)
추가한다고 가정합니다c
.TreeSet
두 번째 add
작업은 true를 반환하고 트리 집합의 관점에서는 동일하지 않으므로(트리 집합의 크기가 증가) a
메서드의 Set#add Set.add
사양과 b
반대되는 경우에도 마찬가지입니다.
참고: 일반적으로 비교자는 직렬화 가능한 데이터 구조(예TreeSet
: ) TreeMap
순서 지정 메서드로 사용될 수 있으므로 구현java.io.Serializable
하는 것이 좋습니다. 데이터 구조가 성공적으로 직렬화하려면 비교자(제공된 경우)가 구현 Serializable
되어야 합니다.
수학적으로 기울어진 경우 지정된 비교자가 c
지정된 개체 S
집합에 적용하는 부과된 순서를 정의하는 관계는 다음과 같습니다.
{(x, y) such that c.compare(x, y) <= 0}.
이 총 주문의 몫은 다음과 같습니다.
{(x, y) such that c.compare(x, y) == 0}.
몫이 동등 관계이며 부과 된 순서가 총 주문S
이라는 계약에서 compare
즉시 따릅니다.S
지정된 c
S
순서가 같음과 일치한다고 말할 때 순서 지정에 대한 몫은 개체의 Object#equals(Object) equals(Object)
메서드에서 정의한 동등 관계임을 의미합니다.
{(x, y) such that x.equals(y)}.
즉, 지정된 순서가 같음과 일치하면 메서드의 동등 관계 및 메서드의 equals
몫으로 정의된 동등 클래스에 의해 compare
정의된 동등 클래스는 동일합니다.
비교자와 달리 Comparable
비교자는 필요에 따라 null 인수 비교를 허용하면서 동등 관계 요구 사항을 유지할 수 있습니다.
이 인터페이스는 Java 컬렉션 프레임워크의 멤버입니다.
1.2에 추가되었습니다.
에 대한 java.util.Comparator
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
속성
Handle |
기본 Android 개체의 JNI 값을 가져옵니다. (다음에서 상속됨 IJavaObject) |
JniIdentityHashCode |
래핑된 인스턴스의 |
JniManagedPeerState |
관리되는 피어의 상태입니다. (다음에서 상속됨 IJavaPeerable) |
JniPeerMembers |
멤버 액세스 및 호출 지원. (다음에서 상속됨 IJavaPeerable) |
PeerReference |
JniObjectReference 래핑된 Java 개체 인스턴스의 값을 반환합니다. (다음에서 상속됨 IJavaPeerable) |
메서드
Compare(Object, Object) |
두 인수의 순서를 비교합니다. |
Comparing(IFunction) |
형식 |
Comparing(IFunction, IComparator) |
형식 |
ComparingDouble(IToDoubleFunction) |
형식 |
ComparingInt(IToIntFunction) |
형식 |
ComparingLong(IToLongFunction) |
형식 |
Disposed() |
인스턴스가 삭제되었을 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
DisposeUnlessReferenced() |
이 인스턴스에 대한 미해결 참조가 없으면 호출 |
Equals(Object) |
다른 개체가 "인지 여부를 나타냅니다. 같음(&따옴표) 이 비교자입니다. |
Finalized() |
인스턴스가 종료될 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
NaturalOrder() |
개체를 자연 순서로 비교하는 비교자를 반환합니다 |
NullsFirst(IComparator) |
null이 아닌 것보다 작은 것으로 간주되는 null 친화적 비교자를 반환합니다 |
NullsLast(IComparator) |
null이 아닌 것보다 큰 것으로 간주되는 null 친화적 비교자를 반환합니다 |
Reversed() |
이 비교자의 역순을 적용하는 비교자를 반환합니다. |
ReverseOrder() |
em>natural ordering/em의 역방향을 <적용하는< 비교자를 반환합니다>. |
SetJniIdentityHashCode(Int32) |
에서 반환 |
SetJniManagedPeerState(JniManagedPeerStates) |
일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다. (다음에서 상속됨 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
에서 반환 |
ThenComparing(IComparator) |
다른 비교자와 어휘 순서 비교자를 반환합니다. |
ThenComparing(IFunction) |
정렬 키를 추출하는 함수와 어휘 순서 비교자를 반환합니다 |
ThenComparing(IFunction, IComparator) |
지정된 |
ThenComparingDouble(IToDoubleFunction) |
정렬 키를 추출하는 함수와 어휘 순서 비교자를 반환합니다 |
ThenComparingInt(IToIntFunction) |
정렬 키를 추출하는 함수와 어휘 순서 비교자를 반환합니다 |
ThenComparingLong(IToLongFunction) |
정렬 키를 추출하는 함수와 어휘 순서 비교자를 반환합니다 |
UnregisterFromRuntime() |
런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 인스턴스의 등록을 취소합니다. (다음에서 상속됨 IJavaPeerable) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다. |
GetJniTypeName(IJavaPeerable) |
일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다. |