Поделиться через


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 или сортированных карт с сортировкой Карты) или предоставления порядка для коллекций объектов, которые не имеют сравнимого естественного порядка.

Порядок, введенный компаратором c для набора элементов S , должен быть согласован с равными, если и только если c.compare(e1, e2)==0 имеет одинаковое логическое значение, что e1.equals(e2) и для каждого e1 и e2 в S.

При использовании компратора следует соблюдать осторожность, которая может ввести порядок, несогласованный с равными порядками, чтобы упорядочить отсортированный набор (или отсортированную карту). Предположим, что отсортированный набор (или отсортированная карта) с явным компратором c используется с элементами (или ключами), рисуемых из набора S. Если порядок, наложенный cS на несогласован с равными, отсортированный набор (или отсортированная карта) будет вести себя "странно". В частности, отсортированный набор (или отсортированная карта) нарушает общий контракт для набора (или карты), который определяется с точки зрения equals.

Например, предположим, что один добавляет два элемента a и такой, что (a.equals(b) && c.compare(a, b) != 0) к пустому TreeSet с компаниматоромcb. Вторая add операция вернет значение true (и размер набора деревьев увеличится), так как a и b не эквивалентен с точки зрения набора деревьев, несмотря на то, что это противоречит спецификации Set#add Set.add метода.

Примечание. Обычно рекомендуется реализовать компраторы java.io.Serializable, так как они могут использоваться в качестве методов упорядочивания в сериализуемых структурах данных (например TreeSet, TreeMap). Чтобы структура данных успешно сериализовылась, средство сравнения (если указано) должно реализовать Serializable.

Для математического наклона отношение, определяющее вложенное упорядочивание, которое данный компратор c накладывает на заданный набор объектовS:

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

Ниже приведена цитата для этого общего порядка:

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

Он следует сразу же из контракта для compare того, чтобы кворот является отношением эквивалентности поS, и что вложенное заказ является общим порядком.S Когда мы говорим, что порядок, наложенный Scна, согласуется с равными, мы имеем в виду, что кворот для упорядочивания является отношением эквивалентности, определяемым методом объектовObject#equals(Object) equals(Object):

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

Иными словами, если вложенное упорядочение согласовано с равными, классы эквивалентности, определенные отношением equals эквивалентности метода, и классы эквивалентности, определенные квалиентным compare методом, совпадают.

В отличие от Comparableэтого, компратор может при необходимости разрешать сравнение аргументов NULL, сохраняя требования для отношения эквивалентности.

Этот интерфейс является членом Платформы коллекций Java.

Добавлено в версии 1.2.

Документация по Java для java.util.Comparator.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Свойства

Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от IJavaObject)
JniIdentityHashCode

Возвращает значение java.lang.System.identityHashCode() для упаковаемого экземпляра.

(Унаследовано от IJavaPeerable)
JniManagedPeerState

Состояние управляемого однорангового узла.

(Унаследовано от IJavaPeerable)
JniPeerMembers

Поддержка доступа к членам и вызовов.

(Унаследовано от IJavaPeerable)
PeerReference

JniObjectReference Возвращает экземпляр объекта Java в оболочке.

(Унаследовано от IJavaPeerable)

Методы

Compare(Object, Object)

Сравнивает два аргумента для порядка.

Comparing(IFunction)

Принимает функцию, извлекающую java.lang.Comparable Comparable ключ сортировки из типа T, и возвращает значение Comparator<T> , которое сравнивается с этим ключом сортировки.

Comparing(IFunction, IComparator)

Принимает функцию, извлекающую ключ сортировки из типа T, и возвращает Comparator<T> значение, которое сравнивается с этим ключом сортировки с помощью указанного ключа Comparatorсортировки.

ComparingDouble(IToDoubleFunction)

Принимает функцию, извлекающую double ключ сортировки из типа T, и возвращает значение Comparator<T> , которое сравнивается с этим ключом сортировки.

ComparingInt(IToIntFunction)

Принимает функцию, извлекающую int ключ сортировки из типа T, и возвращает функцию, которая сравнивается Comparator<T> с этим ключом сортировки.

ComparingLong(IToLongFunction)

Принимает функцию, извлекающую long ключ сортировки из типа T, и возвращает значение 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>.

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)

Функция сравнения, которая накладывает общий порядок для некоторых коллекций объектов.

Применяется к