TreeMap 类

定义

基于 NavigableMap 树 Red-Black 实现。

[Android.Runtime.Register("java/util/TreeMap", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class TreeMap : Java.Util.AbstractMap, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.INavigableMap
[<Android.Runtime.Register("java/util/TreeMap", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type TreeMap = class
    inherit AbstractMap
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface INavigableMap
    interface ISortedMap
    interface IMap
继承
属性
实现

注解

基于 NavigableMap 树 Red-Black 实现。 根据键的可比自然顺序或地图 Comparator 创建时提供的 进行排序,具体取决于使用的构造函数。

此实现为 、 getputremove 操作提供有保证的日志 (n) 时间成本containsKey。 算法是科门、莱森和里维斯特的<>《算法<简介》中的算法的>改编。

请注意,如果此排序映射要正确实现 接口,则树状映射维护的顺序(与任何排序的映射一样,以及是否提供显式比较器)必须与 <>/em> 保持一致equals<。Map (请参阅 ComparableComparator 获取与 equals</em>.) 一致的 em>的精确定义<,这是因为Map接口是按照操作来equals定义的,但排序映射使用其 compareTo (或 compare) 方法执行所有键比较,因此,从排序映射的角度来看,此方法视为相等的两个键是, 平等。 即使排序与 equals不一致,排序映射 <em>的行为也<>定义得非常明确;它只是不符合接口的Map常规协定。

<强>请注意,此实现不同步。</strong> 如果多个线程同时访问映射,并且至少有一个线程在结构上修改映射,则必须<<>>在外部同步。 (结构修改是添加或删除一个或多个映射的任何操作;仅更改与现有键关联的值不是结构修改。) 这通常是通过在自然封装映射的某个对象上同步来实现的。 如果不存在此类对象,则应使用 Collections#synchronizedSortedMap Collections.synchronizedSortedMap 方法“包装”映射。 最好在创建时执行此操作,以防止意外对地图进行非同步访问:

SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));

由此类的所有“集合视图方法”返回的集合的 方法返回 iterator 的迭代器为 <em>fail-fast</em>:如果在创建迭代器后随时对映射进行结构修改(除了通过迭代器自己的 remove 方法之外的任何方式),则迭代器将引发 ConcurrentModificationException。 因此,面对并发修改,迭代器会快速且干净地失败,而不会在将来不确定的时间冒着任意、非确定性行为的风险。

请注意,无法保证迭代器的快速故障行为,因为一般来说,在出现非同步并发修改的情况下,不可能做出任何硬性保证。 故障快速迭代器会尽最大努力引发 ConcurrentModificationException 。 因此,编写依赖于此异常的程序的正确性是错误的: <迭代>器的快速故障行为应仅用于检测 bug。</Em>

此类中的方法及其视图返回的所有 Map.Entry 对都表示生成映射时的快照。 它们不 <强>/<强> 支持 Entry.setValue 方法。 (请注意,可以使用 put.)

此类是 Java 集合框架的成员。

在 1.2 中添加。

java.util.TreeMapJava 文档。

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

构造函数

TreeMap()

使用其键的自然顺序构造新的空树映射。

TreeMap(IComparator)

构造新的空树映射,根据给定比较器进行排序。

TreeMap(IDictionary)

构造一个新的树映射,其中包含与给定映射相同的映射,根据其键的 <em>自然顺序</em> 排序。

TreeMap(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsEmpty

要添加

(继承自 AbstractMap)
JniIdentityHashCode

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
JniPeerMembers

基于 NavigableMap 树 Red-Black 实现。

PeerReference

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

方法

CeilingEntry(Object)

基于 NavigableMap 树 Red-Black 实现。

CeilingKey(Object)

在 1 中添加。

Clear()

要添加

(继承自 AbstractMap)
Clone()

返回此 TreeMap 实例的浅表副本。

Comparator()

返回用于比较此排序映射中的键的比较器;如果使用自然排序,则返回 null。

ContainsKey(Object)

要添加

(继承自 AbstractMap)
ContainsValue(Object)

要添加

(继承自 AbstractMap)
DescendingKeySet()

在 1 中添加。

DescendingMap()

在 1 中添加。

Dispose()

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
Dispose(Boolean)

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
EntrySet()

返回 Set 此映射中包含的映射的视图。

Equals(Object)

指示其他某个对象是否“等于”此对象。

(继承自 Object)
FirstEntry()

如果映射为空, null 则返回与此映射中最少键关联的键值映射。

FirstKey()

返回此排序映射中的最小键。

FloorEntry(Object)

基于 NavigableMap 树 Red-Black 实现。

FloorKey(Object)

在 1 中添加。

ForEach(IBiConsumer)

基于 NavigableMap 树 Red-Black 实现。

Get(Object)

要添加

(继承自 AbstractMap)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
HeadMap(Object)

基于 NavigableMap 树 Red-Black 实现。

HeadMap(Object, Boolean)

在 1 中添加。

HigherEntry(Object)

基于 NavigableMap 树 Red-Black 实现。

HigherKey(Object)

在 1 中添加。

JavaFinalize()

当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。

(继承自 Object)
KeySet()

要添加

(继承自 AbstractMap)
LastEntry()

如果映射为空, null 则返回与此映射中最大的键关联的键值映射。

LastKey()

返回此排序映射中最大的键。

LowerEntry(Object)

基于 NavigableMap 树 Red-Black 实现。

LowerKey(Object)

在 1 中添加。

NavigableKeySet()

在 1 中添加。

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
PollFirstEntry()

如果映射为空, null 则删除并返回与此映射中最少键关联的键值映射。

PollLastEntry()

如果映射为空, null 则删除并返回与此映射中最大的键关联的键值映射。

Put(Object, Object)

要添加

(继承自 AbstractMap)
PutAll(IDictionary)

要添加

(继承自 AbstractMap)
Remove(Object)

要添加

(继承自 AbstractMap)
Replace(Object, Object)

基于 NavigableMap 树 Red-Black 实现。

Replace(Object, Object, Object)

基于 NavigableMap 树 Red-Black 实现。

ReplaceAll(IBiFunction)

基于 NavigableMap 树 Red-Black 实现。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
Size()

要添加

(继承自 AbstractMap)
SubMap(Object, Boolean, Object, Boolean)

在 1 中添加。

SubMap(Object, Object)

基于 NavigableMap 树 Red-Black 实现。

TailMap(Object)

基于 NavigableMap 树 Red-Black 实现。

TailMap(Object, Boolean)

在 1 中添加。

ToArray<T>()

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
Values()

要添加

(继承自 AbstractMap)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
IJavaPeerable.Finalized()

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

基于 NavigableMap 树 Red-Black 实现。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

基于 NavigableMap 树 Red-Black 实现。

GetJniTypeName(IJavaPeerable)

基于 NavigableMap 树 Red-Black 实现。

适用于