java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.util
接口 SortedMap<K,V>

所有超级接口:
Map<K,V>
所有已知实现类:
TreeMap

public interface SortedMap<K,V>
extends Map<K,V>

保证按照键的升序排列的映射,可以按照键的自然顺序(参见 Comparable 接口)进行排序,或者通过创建有序映射时提供的比较器进行排序。对有序映射的集合视图(由 entrySetkeySetvalues 方法返回)进行迭代时,此顺序就会反映出来。要采用此排序,还需要提供一些其他操作(此接口是相似于 SortedSet 接口的映射)。

插入有序映射的所有键都必须实现 Comparable 接口(或者被指定的比较器所接受)。另外,所有这些键都必须是可互相比较的k1.compareTo(k2)(或 comparator.compare(k1, k2))对有序映射中的任意两个元素 k1k2 都不得抛出 ClassCastException。试图违反这些限制将导致违反方法或者构造方法的调用,从而抛出 ClassCastException

注意,如果有序映射正确实现了 Map 接口,则有序映射所保持的顺序(无论是否明确提供了比较器)都必须保持相等一致性。(相等一致性 的精确定义请参阅 Comparable 接口或 Comparator 接口)。这也是因为 Map 接口是按照 equals 操作定义的,但有序映射使用它的 compareTo(或 compare)方法对所有键进行比较,因此从有序映射的观点来看,此方法认为相等的两个键就是相等的。即使顺序没有保持相等一致性,树映射的行为仍然 定义良好的,只不过没有遵守 Map 接口的常规协定。

所有通用有序映射实现类都应该提供 4 个“标准”构造方法:1) void(不带参数)构造方法,创建空的有序映射,按照键的自然顺序 排序。2) 带有一个 Comparator 类型参数的构造方法,创建一个空的有序映射,根据指定的比较器排序。3) 带有一个 Map 类型参数的构造方法,创建一个键-值映射关系与参数相同的有序映射,按照键的自然顺序排序。4) 带有一个有序映射类型参数的构造方法,创建一个新的有序映射,键-值映射关系及排序方法与输入的有序映射相同。除了 JDK 实现(TreeMap 类)遵循此建议外,无法保证强制实施此建议(因为接口不能包含构造方法)。

此接口是 Java Collections Framework 的成员。

从以下版本开始:
1.2
另请参见:
Map, TreeMap, SortedSet, Comparator, Comparable, Collection, ClassCastException

嵌套类摘要
 
从接口 java.util.Map 继承的嵌套类/接口
Map.Entry<K,V>
 
方法摘要
 Comparator<? super K> comparator()
          返回与此有序映射关联的比较器,如果使用键的自然顺序,则返回 null
 K firstKey()
          返回有序映射中当前第一个(最小的)键。
 SortedMap<K,V> headMap(K toKey)
          返回此有序映射的部分视图,其键值严格小于 toKey。
 K lastKey()
          返回有序映射中当前最后一个(最大的)键。
 SortedMap<K,V> subMap(K fromKey, K toKey)
          返回此有序映射的部分视图,其键值从 fromKey(包括)到 toKey(不包括)。
 SortedMap<K,V> tailMap(K fromKey)
          返回有序映射的部分视图,其键大于或等于 fromKey
 
从接口 java.util.Map 继承的方法
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values
 

方法详细信息

comparator

Comparator<? super K> comparator()
返回与此有序映射关联的比较器,如果使用键的自然顺序,则返回 null

返回:
与有序映射关联的比较器,如果使用元素的自然顺序,则返回 null

subMap

SortedMap<K,V> subMap(K fromKey,
                      K toKey)
返回此有序映射的部分视图,其键值从 fromKey(包括)到 toKey(不包括)。(如果 fromKeytoKey 相等,则返回空的有序映射)。返回的有序映射由此有序映射支持,因此返回有序映射中的更改将反映在此有序映射中,反之亦然。返回的 Map 支持此有序映射支持的所有可选映射操作。

如果用户试图插入超出指定范围的键,则此方法返回的映射将抛出 IllegalArgumentException

注:此方法总是返回一个半开区间(包括低终结点而不包括高终结点)。如果需要一个闭区间(同时包括两个终结点),并且键类型允许计算给定键值的后继值,则只需要请求从 lowEndpointsuccessor(highEndpoint) 的子区间。例如,假设 m 是一个用字符串作为键的映射。下面的语句将得到一个包含 m 中键在 lowhigh(包括)之间的所有键-值映射关系的视图:

    Map sub = m.subMap(low, high+"\0");
可使用类似的技术生成开区间(两个终结点都不包括)。下面的语句将得到一个包含 m 中键在 lowhigh(不包括)之间的所有键-值映射关系的视图:
    Map sub = m.subMap(low+"\0", high);

参数:
fromKey - subMap 的低终结点(包括)。
toKey - subMap 的高终结点(不包括)。
返回:
有序映射中指定区间的视图。
抛出:
ClassCastException - 如果不能使用映射的比较器(如果此映射没有比较器,则使用自然顺序)比较 fromKeytoKey。如果 fromKeytoKey 不能与映射中当前键比较,则实现可能抛出此异常,但不要求。
IllegalArgumentException - 如果 fromKey 大于 toKey;或者映射本身是一个 subMap、headMap 或 tailMap,并且 fromKeytoKey 不在 subMap、headMap 或 tailMap 指定的范围之内。
NullPointerException - 如果 fromKeytoKeynull,并且此有序映射不接受 null 键。

headMap

SortedMap<K,V> headMap(K toKey)
返回此有序映射的部分视图,其键值严格小于 toKey。返回的有序映射由此有序映射支持,因此返回有序映射中的更改将反映在此有序映射中,反之亦然。返回的映射支持此有序映射支持的所有可选映射操作。

如果用户试图插入超出指定范围的键,则此方法返回的映射将抛出 IllegalArgumentException。

注:此方法总是返回不包括(高)终结点的视图。如果需要包含此终结点的视图,而且键类型允许计算给定键值的后继值,则只需要请求以 successor(highEndpoint) 为界的 headMap。例如,假设 m 是一个用字符串作为键的映射。下面的语句将得到一个包含 m 中键值小于或等于 high 的所有键-值映射关系的视图:

    Map head = m.headMap(high+"\0");

参数:
toKey - subMap 的高终结点(不包括)。
返回:
此有序映射指定初始区间的视图。
抛出:
ClassCastException - 如果 toKey 与此映射的比较器不兼容(如果此映射没有比较器,并且 toKey 没有实现 Comparable)。如果 fromKeytoKey 不能与映射中的当前键进行比较,则实现可能抛出此异常,但不要求。
IllegalArgumentException - 如果此映射本身是一个 subMap、headMap 或 tailMap,并且 toKey 不在 subMap、headMap 或 tailMap 指定的范围之内。
NullPointerException - 如果 toKeynull,并且此有序映射不接受 null 键。

tailMap

SortedMap<K,V> tailMap(K fromKey)
返回有序映射的部分视图,其键大于或等于 fromKey。返回的有序映射由此有序映射支持,因此返回有序映射中的更改将反映在此有序映射中,反之亦然。返回的映射支持此有序映射支持的所有可选映射操作。

如果用户试图插入超出指定范围的键,则此方法返回的映射将抛出 IllegalArgumentException

注:此方法总是返回包括(低)终结点的视图。如果需要不含此终结点的视图,而且元素类型允许计算给定值的后继值,则只需要请求以 successor(lowEndpoint) 为界的 tailMap。例如,假设 m 是一个用字符串作为键的映射。下面的语句将得到一个包含 m 中键严格大于 low 的所有键-值映射关系的视图:

    Map tail = m.tailMap(low+"\0");

参数:
fromKey - tailMap 的低终结点(包括)。
返回:
此有序映射指定的最终范围的视图。
抛出:
ClassCastException - 如果 fromKey 与此映射的比较器不兼容(如果此映射没有比较器,并且 fromKey 没有实现 Comparable)。如果 fromKey 不能和映射中的当前键比较,则实现可能抛出此异常,但不要求。
IllegalArgumentException - 如果此映射本身是一个 subMap、headMap 或 tailMap,并且 fromKey 不在 subMap、headMap 或 tailMap 指定的范围之内。
NullPointerException - 如果 fromKeynull,并且此有序映射不能接受 null 键。

firstKey

K firstKey()
返回有序映射中当前第一个(最小的)键。

返回:
有序映射中当前第一个(最小的)键。
抛出:
NoSuchElementException - 如果是空映射。

lastKey

K lastKey()
返回有序映射中当前最后一个(最大的)键。

返回:
有序映射中当前最后一个(最大的)键。
抛出:
NoSuchElementException - 如果是空映射。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策