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. Если порядок, наложенный c S на несогласован с равными, отсортированный набор (или отсортированная карта) будет вести себя "странно". В частности, отсортированный набор (или отсортированная карта) нарушает общий контракт для набора (или карты), который определяется с точки зрения 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) <= 0}.
Ниже приведена цитата для этого общего порядка:
{(x, y) such that c.compare(x, y) == 0}.
Он следует сразу же из контракта для compare того, чтобы кворот является отношением эквивалентности поS, и что вложенное заказ является общим порядком.S Когда мы говорим, что порядок, наложенный S c на, согласуется с равными, мы имеем в виду, что кворот для упорядочивания является отношением эквивалентности, определяемым методом объектов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 |
Возвращает значение |
| 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, которое считается |
| NullsLast(IComparator) |
Возвращает понятный для null средство сравнения, которое считается |
| Reversed() |
Возвращает компратор, который накладывает обратное упорядочение этого компратора. |
| ReverseOrder() |
Возвращает компратор, который накладывает обратное <>естественное упорядочение< или 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) |
Функция сравнения, которая накладывает общий порядок для некоторых коллекций объектов. |