Java Map集合

Interface Map<K,V>

参数类型
K - 由此地图维护的键的类型
V - 映射值的类型

All Known Subinterfaces:
Bindings , ConcurrentMap <K,V>, ConcurrentNavigableMap <K,V>, LogicalMessageContext , MessageContext , NavigableMap <K,V>, SOAPMessageContext , SortedMap <K,V>
所有已知实现类:
AbstractMap , Attributes , AuthProvider , ConcurrentHashMap , ConcurrentSkipListMap , EnumMap , HashMap , Hashtable , IdentityHashMap , LinkedHashMap , PrinterStateReasons , Properties , Provider , RenderingHints , SimpleBindings , TabularDataSupport , TreeMap , UIDefaults , WeakHashMap


public interface Map

Map界面提供了三个集合视图 ,允许将映射内容视为一组键,值集合或键值映射集合。 地图的顺序被定义为其中在地图上的集合视图迭代返回元素的顺序。 一些地图实现,如TreeMap课程,对他们的订单做出了具体的保证; 其他人,像HashMap班,不要。

注意:如果使用可变对象作为地图键,必须非常小心。 如果对象的值以影响equals比较的方式更改,而对象是地图中的键,则不会指定地图的行为。 这个禁令的一个特殊情况是,地图不允许将自己包含在内。 虽然地图可以将其本身作为一个值,但建议您非常小心: equals和hashCode方法在这样的地图上已经不太明确。


方法详细说明

size

int size()
返回此地图中键值映射的数量。 如果地图包含超过Integer.MAX_VALUE个元素,则返回Integer.MAX_VALUE 。
结果
该地图中键值映射的数量

isEmpty

boolean isEmpty()
如果此地图不包含键值映射,则返回 true 。
结果
true如果此映射不包含键值映射

containsKey

boolean containsKey(Object key)
如果此映射包含指定键的映射,则返回true 。 更正式地,返回true当且仅当该地图包含关键字k的映射,使得(keynull ? knull : key.equals(k)) 。 (最多可以有一个这样的映射。)
参数
key - 要在此地图中存在的密钥要进行测试
结果
true如果此映射包含指定键的映射
异常
ClassCastException - 如果密钥对于该地图是不合适的类型( optional )
NullPointerException - 如果指定的键为空,并且此映射不允许空键( optional )

containsValue

boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定的值,则返回true 。 更正式地,返回true当且仅当此映射包含至少一个映射到值v ,使得(valuenull ? vnull : value.equals(v)) 。 对于Map接口的大多数实现,此操作对于地图大小可能需要时间线性。
参数
value - 要在此地图中存在的值要进行测试
结果
true如果该地图将一个或多个键映射到指定的值
异常
ClassCastException - 如果该值对于该地图是不合适的类型( optional )
NullPointerException - 如果指定的值为空,并且此映射不允许空值( optional )

get

V get(Object key)
返回到指定键所映射的值,或null如果此映射包含该键的映射。
更正式地,如果该映射包含从键k到值v ,使得(keynull ? knull : key.equals(k)) ,则该方法返回v ; 否则返回null 。 (最多可以有一个这样的映射。)

如果此映射允许空值,则返回值null并不一定表明该映射不包含该键的映射关系; 地图也可能明确地将密钥映射到null 。 可以使用containsKey操作来区分这两种情况。

参数
key - 要返回其关联值的键
结果
指定键映射到的值,如果此映射不包含键的映射, null
异常
ClassCastException - 如果密钥是该地图不合适的类型( optional )
NullPointerException - 如果指定的键为空,并且此映射不允许空键( optional )

put

V put(K key,V value)
将指定的值与该映射中的指定键相关联(可选操作)。 如果映射先前包含了密钥的映射,则旧值将被指定的值替换。 (映射m被认为包含关键字的映射k当且仅当m.containsKey(k)将返回true )。
参数
key - 指定值与之关联的键
value - 与指定键相关联的值
结果
前一个值与key相关联 ,或null,如果没有key的映射。 (A null返回也可以表示该地图以前关联的null与key ,如果实现支持null的值)
异常
UnsupportedOperationException -如果 put操作不受此地图支持
ClassCastException - 如果指定的键或值的类阻止它存储在此映射中
NullPointerException - 如果指定的键或值为空,并且此映射不允许空值或值
IllegalArgumentException - 如果指定键或值的某些属性阻止其存储在此映射中

remove

V remove(Object key)
如果存在(从可选的操作),从该地图中删除一个键的映射。 更正式地,如果该映射包含从关键字k到值v的映射,使得(keynull ? knull : key.equals(k)) ,该映射被去除。 (地图最多可以包含一个这样的映射。)
返回此地图先前相关联的密钥,或null如果映射包含该键的映射值。

如果此映射允许空值,那么null返回值并不一定表明此映射不包含该键的映射关系; 地图也可能显式地将密钥映射到null 。

一旦呼叫返回,该映射将不包含指定键的映射。

参数
key - 其映射将从地图中删除的密钥
结果
前一个值与 key相关联 ,或 null,如果没有 key的映射。
异常
UnsupportedOperationException -如果 remove操作不受此地图支持
ClassCastException - 如果密钥对于此地图是不合适的类型( optional )
NullPointerException - 如果指定的键为空,并且此映射不允许空键( optional )

clear

void clear()
从该地图中删除所有的映射(可选操作)。 此呼叫返回后,地图将为空。
异常
UnsupportedOperationException -如果 clear操作不受此地图支持

keySet

Set keySet()
返回此地图中包含的键的Set视图。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行中修改映射(除了通过迭代器自己的remove操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove,Set.remove,removeAll,retainAll和clear操作。 它不支持add或addAll操作。
结果
该地图中包含的键的集合视图

entrySet

Set<Map.Entry<K,V>> entrySet()
返回此地图中包含的映射的Set视图。 该集合由地图支持,因此对地图的更改将反映在集合中,反之亦然。 如果在集合中的迭代正在进行时修改映射(除了通过迭代器自己的remove操作,或者通过迭代器返回的映射条目上的setValue操作),迭代的结果是未定义的。 该组支持元件移除,即从映射中相应的映射,经由Iterator.remove,Set.remove,removeAll,retainAll和clear操作。 它不支持add或addAll操作。
结果
该地图中包含的映射的集合视图

equals

boolean equals(Object o)
将指定的对象与此映射进行比较以获得相等性。 如果给定的对象也是一个地图,并且两个地图代表相同的映射,则返回true 。 更正式地,如果m1.entrySet().equals(m2.entrySet()) ,两个地图m1和m2代表相同的映射。 这确保equals方法在Map接口的不同实现方面正常工作。
重写:
equals在类别 Object
参数
o - 要与此映射相等的对象进行比较
结果
true如果指定的对象等于此映射
另请参见:
Object.hashCode() , HashMap

getOrDefault

default V getOrDefault(Object key, V defaultValue)
返回到指定键所映射的值,或 defaultValue如果此映射包含该键的映射。
实现要求:
默认实现不会保证此方法的同步或原子属性。 提供原子性保证的任何实现都必须覆盖此方法并记录其并发属性。
参数
key - 要返回其关联值的键
defaultValue - 键的默认映射
结果
指定键映射到的值,如果此映射不包含该键的映射, defaultValue
异常
ClassCastException - 如果密钥是该地图的不当类型( optional )
NullPointerException - 如果指定的键为空,并且此映射不允许空键( optional )
从以下版本开始:1.8

forEach

default void forEach(BiConsumer<? super K,? super V> action)
对此映射中的每个条目执行给定的操作,直到所有条目都被处理或操作引发异常。 除非实现类另有指定,否则按照进入设置迭代的顺序执行操作(如果指定了迭代顺序)。操作引发的异常被转发给调用者。
实现要求:
默认实现相当于,对于这个map :
for (Map.Entry<K, V> entry : map.entrySet()) action.accept(entry.getKey(), entry.getValue());
默认实现不会保证此方法的同步或原子属性。 提供原子性保证的任何实现都必须覆盖此方法并记录其并发属性。
参数
action - 要为每个条目执行的操作
异常
NullPointerException - 如果指定的动作为空
ConcurrentModificationException - 如果在迭代期间发现条目被删除
从以下版本开始:1.8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值