Share via


IComparator 인터페이스

정의

일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다.

[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
파생
특성
구현

설명

일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다. 비교자는 정렬 순서를 정확하게 제어할 수 있도록 정렬 메서드(예: Collections#sort(List,Comparator) Collections.sort 또는 Arrays#sort(Object[],Comparator) Arrays.sort)에 전달될 수 있습니다. 비교자는 특정 데이터 구조(예: SortedSet 정렬 집합 또는 SortedMap 정렬된 맵)의 순서를 제어하거나 비교 가능한 자연 순서가 없는 개체의 컬렉션에 대한 순서를 제공하는 데 사용할 수도 있습니다.

요소 집합에 대한 비교자에 c 의해 부과되는 순서는 의 모든 e1 및 에 대해 동일한 부울 값 e1.equals(e2) 이 있는 경우에만 c.compare(e1, e2)==0음과 e2S일치한다고 합니다.S

정렬된 집합(또는 정렬된 맵)과 같음과 일치하지 않는 순서를 적용할 수 있는 비교자를 사용할 때는 주의해야 합니다. 명시적 비교자가 c 있는 정렬된 집합(또는 정렬된 맵)이 집합 S에서 그린 요소(또는 키)와 함께 사용되었다고 가정합니다. 에 S 의해 c 부과된 순서가 같음과 일치하지 않으면 정렬된 집합(또는 정렬된 맵)이 "이상하게" 동작합니다. 특히 정렬된 집합(또는 정렬된 맵)은 의 관점에서 정의된 집합(또는 맵)에 대한 일반 계약을 위반합니다 equals.

예를 들어 비교자를 사용하여 빈 TreeSet 에 두 개의 요소를 a 추가한다고 b(a.equals(b) && c.compare(a, b) != 0) 가정해 c보겠습니다. 두 번째 add 작업은 true를 반환하고 트리 집합의 크기가 증가 a 합니다. 및 는 메서드의 사양 Set#add Set.addb 반대되는 경우에도 트리 집합의 관점에서 동일하지 않기 때문입니다.

참고: 일반적으로 비교자는 직렬화 가능한 데이터 구조(예TreeSet: )에서 정렬 메서드로 사용할 수 있으므로 를 TreeMap구현java.io.Serializable하는 것이 좋습니다. 데이터 구조가 성공적으로 직렬화되도록 하려면 비교자(제공된 경우)가 를 구현 Serializable해야 합니다.

수학적으로 기울어진 경우 지정된 비교자가 c 지정된 개체 S 집합에 부과하는 순서를 정의하는 관계는 다음과 같습니다.

{(x, y) such that c.compare(x, y) &lt;= 0}.

이 총 주문의 은 다음과 같습니다.

{(x, y) such that c.compare(x, y) == 0}.

몫이 에 대한 동등 관계S이고 부과된 순서가 에 S대한 compare총 주문임을 계약에서 바로 따릅니다. 에 S 의해 c 부과된 순서가 같음과 일치한다고 말할 때 순서 지정에 대한 몫은 개체의 Object#equals(Object) equals(Object) 메서드에 의해 정의된 동등 관계임을 의미합니다.

{(x, y) such that x.equals(y)}.

즉, 적용된 순서가 같음과 일치하면 메서드의 동등 관계로 정의된 동등 클래스와 메서드의 equalscompare 몫으로 정의된 동등 클래스가 동일합니다.

달리 Comparable비교자는 동등 관계에 대한 요구 사항을 유지하면서 필요에 따라 null 인수 비교를 허용할 수 있습니다.

이 인터페이스는 Java Collections Framework의 멤버입니다.

1.2에 추가되었습니다.

에 대한 Java 설명서입니다 java.util.Comparator.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

속성

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
JniIdentityHashCode

java.lang.System.identityHashCode() 래핑된 instance 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

Compare(Object, Object)

두 인수의 순서를 비교합니다.

Comparing(IFunction)

형식T에서 정렬 키를 추출하고 java.lang.Comparable Comparable 해당 정렬 키와 비교하는 을 Comparator<T> 반환하는 함수를 허용합니다.

Comparing(IFunction, IComparator)

형식T에서 정렬 키를 추출하는 함수를 수락하고 지정된 를 사용하여 정렬 키와 비교하는 을 Comparator반환 Comparator<T> 합니다.

ComparingDouble(IToDoubleFunction)

형식T에서 정렬 키를 추출하고 double 해당 정렬 키와 비교하는 을 Comparator<T> 반환하는 함수를 허용합니다.

ComparingInt(IToIntFunction)

형식T에서 정렬 키를 추출하고 int 해당 정렬 키와 비교하는 을 Comparator<T> 반환하는 함수를 허용합니다.

ComparingLong(IToLongFunction)

형식T에서 정렬 키를 추출하고 long 해당 정렬 키와 비교하는 을 Comparator<T> 반환하는 함수를 허용합니다.

Disposed()

instance 삭제되었을 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
DisposeUnlessReferenced()

이 instance 대한 미해결 참조가 없으면 를 호출Dispose()합니다. 그렇지 않으면 아무 것도 수행하지 않습니다.

(다음에서 상속됨 IJavaPeerable)
Equals(Object)

다른 개체가 따옴표로 &여부를 나타냅니다. 은&따옴표와 같습니다. 이 비교자입니다.

Finalized()

instance 완료되면 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
NaturalOrder()

개체를 자연 순서로 비교하는 비교자를 반환합니다 Comparable .

NullsFirst(IComparator)

null이 아닌 비교자보다 작은 것으로 간주되는 null 친화적 비교자를 반환합니다 null .

NullsLast(IComparator)

null이 아닌 것보다 큰 것으로 간주되는 null 친화적 비교자를 반환합니다 null .

Reversed()

이 비교자의 역순을 적용하는 비교자를 반환합니다.

ReverseOrder()

em>natural ordering/em의 역방향을 <적용하는 비교자를< 반환합니다>.

SetJniIdentityHashCode(Int32)

에서 반환 JniIdentityHashCode된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다.

(다음에서 상속됨 IJavaPeerable)
SetPeerReference(JniObjectReference)

에서 반환 PeerReference된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
ThenComparing(IComparator)

다른 비교자와 어휘 순서 비교자를 반환합니다.

ThenComparing(IFunction)

정렬 키를 추출하는 함수를 사용하여 사전순 비교자를 반환합니다 Comparable .

ThenComparing(IFunction, IComparator)

지정된 Comparator와 비교할 키를 추출하는 함수를 사용하여 사전순 비교자를 반환합니다.

ThenComparingDouble(IToDoubleFunction)

정렬 키를 추출하는 함수를 사용하여 사전순 비교자를 반환합니다 double .

ThenComparingInt(IToIntFunction)

정렬 키를 추출하는 함수를 사용하여 사전순 비교자를 반환합니다 int .

ThenComparingLong(IToLongFunction)

정렬 키를 추출하는 함수를 사용하여 사전순 비교자를 반환합니다 long .

UnregisterFromRuntime()

런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다.

GetJniTypeName(IJavaPeerable)

일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다.

적용 대상