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
类 AbstractMap<K,V>

java.lang.Object
  继承者 java.util.AbstractMap<K,V>
所有已实现的接口:
Map<K,V>
直接已知子类:
ConcurrentHashMap, EnumMap, HashMap, IdentityHashMap, TreeMap, WeakHashMap

public abstract class AbstractMap<K,V>
extends Object
implements Map<K,V>

此类提供了 Map 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作。

要实现不可修改的映射,程序员只需扩展此类并提供 entrySet 方法的实现即可,该方法将返回映射的映射关系 Set 视图。通常,返回的 Set 将依次在 AbstractSet 上实现。此 Set 不支持 addremove 方法,其迭代器也不支持 remove 方法。

要实现可修改的映射,程序员还必须另外重写此类的 put 方法(否则将抛出 UnsupportedOperationException),并且由 entrySet().iterator() 所返回的迭代器必须另外实现其 remove 方法。

按照 Map 接口规范中的推荐,程序员通常应该提供一个 void(无参数)构造方法和 map 构造方法。

此类中每个非抽象方法的文档详细描述了其实现。如果要实现的映射允许更有效的实现,则可以重写这些方法中的每个方法。

此类是 Java Collections Framework 的成员。

从以下版本开始:
1.2
另请参见:
Map, Collection

嵌套类摘要
 
从接口 java.util.Map 继承的嵌套类/接口
Map.Entry<K,V>
 
构造方法摘要
protected AbstractMap()
          单独的构造方法。
 
方法摘要
 void clear()
          从此映射中移除所有映射关系(可选操作)。
protected  Object clone()
          返回此 AbstractMap 实例的浅表复制:不克隆键和值本身。
 boolean containsKey(Object key)
          如果此映射包含指定键的映射关系,则返回 true
 boolean containsValue(Object value)
          如果此映射将一个或多个键映射到该值,则返回 true
abstract  Set<Map.Entry<K,V>> entrySet()
          返回包含在此映射中的映射关系的 Set 视图。
 boolean equals(Object o)
          比较指定对象与此映射的相等性。
 V get(Object key)
          返回此映射将指定键映射到的值。
 int hashCode()
          返回此映射的哈希码值。
 boolean isEmpty()
          如果此映射不包含任何键-值映射关系,则返回 true
 Set<K> keySet()
          返回包含在此映射中的键的 Set 视图。
 V put(K key, V value)
          将指定的值与此映射中的指定键关联起来(可选操作)。
 void putAll(Map<? extends K,? extends V> t)
          将指定映射的所有映射关系复制到此映射中(可选操作)。
 V remove(Object key)
          如果此映射中存在此键的映射关系,则移除该映射关系(可选操作)。
 int size()
          返回此映射中键-值映射关系的数量。
 String toString()
          返回此映射的字符串表示形式。
 Collection<V> values()
          返回包含在此映射中的值的 collection 视图。
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

AbstractMap

protected AbstractMap()
单独的构造方法。(由子类构造方法调用,通常是隐式的。)

方法详细信息

size

public int size()
返回此映射中键-值映射关系的数量。如果该映射包含多于 Integer.MAX_VALUE 的元素,则返回 Integer.MAX_VALUE

此实现返回 entrySet().size()

指定者:
接口 Map<K,V> 中的 size
返回:
此映射中键-值映射关系的数量。

isEmpty

public boolean isEmpty()
如果此映射不包含任何键-值映射关系,则返回 true

此实现返回 size() == 0

指定者:
接口 Map<K,V> 中的 isEmpty
返回:
如果此映射不包含任何键-值映射关系,则返回 true

containsValue

public boolean containsValue(Object value)
如果此映射将一个或多个键映射到该值,则返回 true。更正式地说,当且仅当此映射包含至少一个到值 v 的映射关系,并且 (value==null ? v==null : value.equals(v)) 时才返回 true。对于大多数映射实现而言,此操作所需的时间可能与映射的大小呈线性关系。

此实现在 entrySet() 上进行迭代,以搜索带有指定值的项。如果找到这样的项,则返回 true。如果迭代终止,并且没有找到这样的项,则返回 false。注意,此实现所需的时间与映射的大小呈线性关系。

指定者:
接口 Map<K,V> 中的 containsValue
参数:
value - 将测试此映射中是否存在的值。
返回:
如果此映射将一个或多个键映射到该值,则返回 true

containsKey

public boolean containsKey(Object key)
如果此映射包含指定键的映射关系,则返回 true

此实现在 entrySet() 上进行迭代,以搜索带有指定键的项。如果找到这样的项,则返回 true。如果迭代终止,并且没有找到这样的项,则返回 false。注意,此实现所需的时间与映射的大小呈线性关系;许多实现将重写此方法。

指定者:
接口 Map<K,V> 中的 containsKey
参数:
key - 将测试此映射中是否存在的键。
返回:
如果此映射包含指定键的映射关系,则返回 true
抛出:
NullPointerException - 如果该键为 null 并且此映射不允许包含 null 键。

get

public V get(Object key)
返回此映射将指定键映射到的值。如果该映射不包含此键的映射关系,则返回 null。返回值 null一定 表明该映射不包含该键的映射关系;也可能是该映射显式地将该键映射到 null。可以使用 containsKey 操作来区分这两种情况。

此实现在 entrySet() 上进行迭代,以搜索带有指定键的项。如果找到这样的项,则返回该项的值。如果迭代终止,并且没有找到这样的项,则返回 null。注意,此实现所需的时间与映射的大小呈线性关系;许多实现将重写此方法。

指定者:
接口 Map<K,V> 中的 get
参数:
key - 与返回值关联的键。
返回:
此映射将指定键映射到的值。
抛出:
NullPointerException - 如果键为 null 并且此映射不允许包含 null 键。
另请参见:
containsKey(Object)

put

public V put(K key,
             V value)
将指定的值与此映射中的指定键关联起来(可选操作)。如果映射以前包含此键的映射关系,则替换旧的值。

此实现始终抛出 UnsupportedOperationException

指定者:
接口 Map<K,V> 中的 put
参数:
key - 将与指定值关联的键。
value - 将与指定键关联的值。
返回:
指定键以前的关联值。如果没有该键的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可以表明该映射以前将 null 与指定键相关联。)
抛出:
UnsupportedOperationException - 如果此映射不支持 put 操作。
ClassCastException - 如果指定键或值的类不允许它存储在此映射中。
IllegalArgumentException - 如果此键