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.sortArrays#sort(Object[],Comparator) Arrays.sort) ,以便精确控制排序顺序。 比较器还可用于控制某些数据结构的顺序, (例如 SortedSet 排序集或 SortedMap 排序地图) ,或者为没有可比自然排序的对象集合提供排序。

比较器c对一组元素S施加的排序据说与等于一致,前提是并且仅当 c.compare(e1, e2)==0 与 中的每个 Se2 具有相同的布尔值e1.equals(e2)e1时,

使用能够施加与等于等于排序的排序集的比较器 (或排序的地图) 时,应谨慎操作。 假设使用显式比较器的 c 排序集 (或排序的映射) 集与从集 S绘制的元素 (或键) 一起使用。 如果 由 施加cS的排序与等于不一致,则排序集 (或排序的地图) 将表现“奇怪”。 具体而言,排序集 (或排序的映射) 将违反设置 (或映射) 的一般协定,该协定以 equals定义。

例如,假设 一个 将两个 元素ab和 添加到(a.equals(b) && c.compare(a, b) != 0)具有比较符 c的空TreeSet中。 第二 add 个操作将返回 true (并且树集的大小将增加) 因为 ab 从树集的角度来看不等效,即使这与 方法的 Set#add Set.add 规范相反。

注意:比较器通常最好同时实现 java.io.Serializable,因为它们可用作可序列化数据结构中的排序方法, (如 TreeSetTreeMap) 。 为了使数据结构成功序列化,比较器 ((如果提供) 必须实现 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的总顺序。 当我们说 由 S 施加c的排序与等于一致时,我们的意思是排序的商是对象的 Object#equals(Object) equals(Object) 方法 () 定义的等效关系:

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

换句话说,当施加的排序与 equal 一致时,由方法的等效关系 equals 定义的等效类与方法的商 compare 定义的等效类是相同的。

与 不同 Comparable,比较器可以选择性地允许比较 null 参数,同时保持等效关系的要求。

此接口是 Java 集合框架的成员。

在 1.2 中添加。

java.util.ComparatorJava 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

属性

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<T> 使用指定的 Comparator按该排序键进行比较的 。

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)

比较函数,对对象的某些集合施加 总排序

适用于