다음을 통해 공유


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

설명

일부 개체 컬렉션에 총 순서를 적용하는 비교 함수입니다. 정렬 순서를 정확하게 제어할 수 있도록 비교자를 정렬 메서드(예: 또는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음과 e2S일치한다고 합니다.

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

예를 들어 비교자를 사용하여 빈 요소에 두 개의 요소를 ab(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) &lt;= 0}.

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

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

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

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

즉, 지정된 순서가 같음과 일치하면 메서드의 동등 관계 및 메서드의 equals 몫으로 정의된 동등 클래스에 의해 compare 정의된 동등 클래스는 동일합니다.

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

이 인터페이스는 Java 컬렉션 프레임워크 멤버입니다.

1.2에 추가되었습니다.

에 대한 java.util.ComparatorJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

속성

Handle

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

(다음에서 상속됨 IJavaObject)
JniIdentityHashCode

래핑된 인스턴스의 java.lang.System.identityHashCode() 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

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

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 인스턴스의 값을 반환합니다.

(다음에서 상속됨 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()

인스턴스가 삭제되었을 때 호출됩니다.

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

이 인스턴스에 대한 미해결 참조가 없으면 호출 Dispose()합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.

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

다른 개체가 "인지 여부를 나타냅니다. 같음(&따옴표) 이 비교자입니다.

Finalized()

인스턴스가 종료될 때 호출됩니다.

(다음에서 상속됨 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 호출에서 반환되지 않도록 이 인스턴스의 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

적용 대상