IComparator 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
比较函数,对对象的某些集合施加 总排序 。
[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
对一组元素S
施加的排序据说与等于一致,前提是并且仅当 c.compare(e1, e2)==0
与 中的每个 S
和 e2
具有相同的布尔值e1.equals(e2)
e1
时,
使用能够施加与等于等于排序的排序集的比较器 (或排序的地图) 时,应谨慎操作。 假设使用显式比较器的 c
排序集 (或排序的映射) 集与从集 S
绘制的元素 (或键) 一起使用。 如果 由 施加c
S
的排序与等于不一致,则排序集 (或排序的地图) 将表现“奇怪”。 具体而言,排序集 (或排序的映射) 将违反设置 (或映射) 的一般协定,该协定以 equals
定义。
例如,假设 一个 将两个 元素a
b
和 添加到(a.equals(b) && c.compare(a, b) != 0)
具有比较符 c
的空TreeSet
中。 第二 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)}.
换句话说,当施加的排序与 equal 一致时,由方法的等效关系 equals
定义的等效类与方法的商 compare
定义的等效类是相同的。
与 不同 Comparable
,比较器可以选择性地允许比较 null 参数,同时保持等效关系的要求。
此接口是 Java 集合框架的成员。
在 1.2 中添加。
的 java.util.Comparator
Java 文档。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。
属性
Handle |
获取基础 Android 对象的 JNI 值。 (继承自 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 的对 null 的友好比较器 |
NullsLast(IComparator) |
返回一个对 null 的友好比较器,该比较器 |
Reversed() |
返回一个比较器,该比较器施加此比较器的反向排序。 |
ReverseOrder() |
返回一个比较器,该比较器施加了 em>natural ordering</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) |
比较函数,对对象的某些集合施加 总排序 。 |