java.util.map家族图谱

By | 08月02日
Advertisement

public interface Map<K,V>
Map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。

Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;另一些映射实现则不保证顺序,如 HashMap 类。

注:将可变对象用作映射键时必须格外小心。当对象是映射中某个键时,如果以影响 equals 比较的方式更改了对象的值,则映射的行为将是不确定的。此项禁止的一种特殊情况是不允许某个映射将自身作为一个键包含。虽然允许某个映射将自身作为值包含,但请格外小心:在这样的映射上 equals 和 hashCode 方法的定义将不再是明确的。

所有通用的映射实现类应该提供两个“标准的”构造方法:一个 void(无参数)构造方法,用于创建空映射;一个是带有单个 Map 类型参数的构造方法,用于创建一个与其参数具有相同键-值映射关系的新映射。实际上,后一个构造方法允许用户复制任意映射,生成所需类的一个等价映射。尽管无法强制执行此建议(因为接口不能包含构造方法),但是 JDK 中所有通用的映射实现都遵从它。

此接口中包含的“破坏”方法可修改其操作的映射,如果此映射不支持该操作,这些方法将抛出 UnsupportedOperationException。如果是这样,那么在调用对映射无效时,这些方法可以(但不要求)抛出 UnsupportedOperationException。例如,如果某个不可修改的映射(其映射关系是“重叠”的)为空,则对该映射调用 putAll(Map) 方法时,可以(但不要求)抛出异常。

某些映射实现对可能包含的键和值有所限制。例如,某些实现禁止 null 键和值,另一些则对其键的类型有限制。尝试插入不合格的键或值将抛出一个未经检查的异常,通常是 NullPointerException 或 ClassCastException。试图查询是否存在不合格的键或值可能抛出异常,或者返回 false;某些实现将表现出前一种行为,而另一些则表现后一种。一般来说,试图对不合格的键或值执行操作且该操作的完成不会导致不合格的元素被插入映射中时,将可能抛出一个异常,也可能操作成功,这取决于实现本身。这样的异常在此接口的规范中标记为“可选”。

java.util.map家族图谱

java.util.map家族图谱

方法摘要

void clear()从此映射中移除所有映射关系(可选操作)。
boolean containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(Object value)如果此映射将一个或多个键映射到指定值,则返回 true。
Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射关系的 Set 视图。
boolean equals(Object o)比较指定的对象与此映射是否相等。
V get(Object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
int hashCode()返回此映射的哈希码值。
boolean isEmpty()如果此映射未包含键-值映射关系,则返回 true。
Set<K> keySet()返回此映射中包含的键的 Set 视图。
V put(K key, V value)将指定的值与此映射中的指定键关联(可选操作)。
void putAll(Map<? extends K,? extends V> m)从指定映射中将所有映射关系复制到此映射中(可选操作)。
V remove(Object key)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
int size()返回此映射中的键-值映射关系数。
Collection<V> values()返回此映射中包含的值的 Collection 视图。

Similar Posts:

  • java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map

    1.错误描述 java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map at service.impl.BillServiceImpl.exportBillExcel(BillServiceImpl.java:336) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMet

  • java.sql.SQLException: Invalid parameter object type. Expected &#39;java.util.Map&#39; but found &#39;java.lang.String 转载

    java.sql.SQLException: Invalid parameter object type. Expected 'java.util.Map' but found 'java.lang.String' 原文:http://hi.baidu.com/ideas/item/1e41172f70ac61876f2cc369 1 异常提示: com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred

  • 在JSTL EL中处理java.util.Map,及嵌套List的情况

    关联的键查找存储在映射中的值. 在方括号中指定键,并将相应的值作为表达式的值返回.例如,表达式 ${map['key']} 返回与 map标识符所引用的 Map 中的 "key" 键相关联的值. 当forEach 的items属性中的表达式的值是java.util.Map时,则var中命名的变量的类型就是 java.util.Map.Entry.这时var=entry的话,用表达式${entry.key}取得键名. 用表达${entry.value}得到每个entry的值.这是因为ja

  • ibatis Tips 之 java.util.Map作为parameterClass和resultClass

    1.Map作为parameterClass 映射文件: <!--use Map type as parameterClass--> <select id="getProduct-Map" parameterClass="java.util.Map" resultMap="get-product-result"> <![CDATA[ select * from t_product where prd_id=#id# a

  • JDK 8 - “The type java.util.Map$Entry cannot be resolved”

    http://stackoverflow.com/questions/26700824/jdk-8-the-type-java-util-mapentry-cannot-be-resolved This was fixed by changing my Eclipse IDE version from indigo to luna. Luna comes with support for Java 8 so all issues have now been resolved. 他这里采用的是更换

  • The type java.util.Map$Entry cannot be resolved.

    这个问题是由于JDK版本不对,MyEclipse使用JDK8的时候有点问题,解决办法如下:

  • Java Web编辑出现 the type java.util.map$Entry cannot be resolve

    解决方案: 把tomcat/lib目录中的jsp-api.jar和servlet-api.jar导入到项目的web/lib目录下

  • java util包学习(8)Map源码分析

    Set 接口的实现类,,虽然实现了Set的方法但是实际上的实现都是基于Map的,Map是键与值的映射关系,键不能重复,Set则是元素不能重复,,如果没有映射关系的Map不就是Set么,,总之它们是很类似的,所以看看Map package java.util; public interface Map<K,V> { int size(); boolean isEmpty(); boolean containsKey(Object key); boolean containsValue(Objec

  • Java遍历Map的两种实现方法

    利用map也可以实现统计功能,存入,遍历. 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值 import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class HashMapTest2 { public static void main(String[] args) { HashMap map = new HashMap(); map

  • Java中map接口 遍历map

    java集合框架用于存储数据,也被称为集合类 位于java.util包下 java.util包下常用接口和类 Collection和Map是Java集合框架的根接口 List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问. Set集合是无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问(也是不能集合里元素不允许重复的原因). Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value. Map接口 Map

Tags: