TreeMap 类

定义

基于红黑树的 NavigableMap 实现。

[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 实现。 根据其键的“可比”自然排序或地图 Comparator 创建时提供的排序方式(具体取决于使用哪个构造函数),对地图进行排序。

此实现为和 getputremove操作提供有保证的 containsKeylog(n) 时间成本。 算法是 Cormen、Leiserson 和 Rivest em <>Algorithms</em> 简介中的算法的改编。

请注意,如果此排序映射正确实现Map接口,则树状图维护的顺序(如任何已排序的映射)以及是否提供显式比较器,都必须><与 equals</em> 保持一致。 (请参阅ComparableComparator获取与 equals</em> 一致的 em>的精确定义<)这是因为Map接口在操作方面equals进行了定义,但已排序的映射使用其 compareTo (或compare) 方法执行所有键比较,因此此方法认为相等的两个键从排序的映射的角度来看是相等的。 即使排序与排序不一致equals,已排序的映射 <em>的行为也<已>得到很好的定义;它只是不服从接口的Map一般协定。

<强>请注意,此实现未同步。</strong> 如果多个线程同时访问映射,并且至少有一个线程在结构上修改映射,则 <它>必须</em> 在外部同步。 (结构修改是添加或删除一个或多个映射的任何操作;仅更改与现有键关联的值不是结构修改。这通常是通过在自然封装地图的某些对象上进行同步来实现的。 如果不存在此类对象,则应使用 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 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

TreeMap()

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

TreeMap(IComparator)

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

TreeMap(IDictionary)

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

TreeMap(IntPtr, JniHandleOwnership)

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

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsEmpty

要添加

(继承自 AbstractMap)
JniIdentityHashCode

基于红黑树的 NavigableMap 实现。

(继承自 Object)
JniPeerMembers

基于红黑树的 NavigableMap 实现。

PeerReference

基于红黑树的 NavigableMap 实现。

(继承自 Object)
ThresholdClass

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

ThresholdType

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

方法

CeilingEntry(Object)

基于红黑树的 NavigableMap 实现。

CeilingKey(Object)

已在 1 中添加。

Clear()

要添加

(继承自 AbstractMap)
Clone()

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

Comparator()

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

ContainsKey(Object)

要添加

(继承自 AbstractMap)
ContainsValue(Object)

要添加

(继承自 AbstractMap)
DescendingKeySet()

已在 1 中添加。

DescendingMap()

已在 1 中添加。

Dispose()

基于红黑树的 NavigableMap 实现。

(继承自 Object)
Dispose(Boolean)

基于红黑树的 NavigableMap 实现。

(继承自 Object)
EntrySet()

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

Equals(Object)

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

(继承自 Object)
FirstEntry()

返回与此映射中与最小键关联的键值映射,或者 null 映射为空。

FirstKey()

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

FloorEntry(Object)

基于红黑树的 NavigableMap 实现。

FloorKey(Object)

已在 1 中添加。

ForEach(IBiConsumer)

基于红黑树的 NavigableMap 实现。

Get(Object)

要添加

(继承自 AbstractMap)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
HeadMap(Object)

基于红黑树的 NavigableMap 实现。

HeadMap(Object, Boolean)

已在 1 中添加。

HigherEntry(Object)

基于红黑树的 NavigableMap 实现。

HigherKey(Object)

已在 1 中添加。

JavaFinalize()

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

(继承自 Object)
KeySet()

要添加

(继承自 AbstractMap)
LastEntry()

返回与此映射中最大键关联的键值映射,或者 null 映射为空。

LastKey()

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

LowerEntry(Object)

基于红黑树的 NavigableMap 实现。

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 实现。

Replace(Object, Object, Object)

基于红黑树的 NavigableMap 实现。

ReplaceAll(IBiFunction)

基于红黑树的 NavigableMap 实现。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
Size()

要添加

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

已在 1 中添加。

SubMap(Object, Object)

基于红黑树的 NavigableMap 实现。

TailMap(Object)

基于红黑树的 NavigableMap 实现。

TailMap(Object, Boolean)

已在 1 中添加。

ToArray<T>()

基于红黑树的 NavigableMap 实现。

(继承自 Object)
ToString()

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

(继承自 Object)
UnregisterFromRuntime()

基于红黑树的 NavigableMap 实现。

(继承自 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 实现。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

基于红黑树的 NavigableMap 实现。

(继承自 Object)
IJavaPeerable.Finalized()

基于红黑树的 NavigableMap 实现。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

基于红黑树的 NavigableMap 实现。

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

基于红黑树的 NavigableMap 实现。

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

基于红黑树的 NavigableMap 实现。

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

基于红黑树的 NavigableMap 实现。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

基于红黑树的 NavigableMap 实现。

GetJniTypeName(IJavaPeerable)

基于红黑树的 NavigableMap 实现。

适用于