请教一下Hashmap类 请教一下Hashmap类讲解一下其中重要的方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去参考JDK文档啊,里面写的很详细!主要是get put keySet remove size containsKey containsValue values 看要解决什么样的问题了,自己常用到的有KeySet(),entrySet()...具体的问题具体解决! 还有结合迭代器迭代map的操作也很常见 http://blog.csdn.net/zhiyuzhe/archive/2006/06/01/767903.aspx HashMap用散列算法实现的Map主要也就是 put get方法,还有Iterator方法 java.util接口 Map<K,V>类型参数: K - 此映射所维护的键的类型 V - 映射值的类型嵌套类摘要static interface Map.Entry<K,V> 映射项(键-值对)。 方法摘要 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 视图。 方法详细信息sizeint size() 返回此映射中的键-值映射关系数。如果该映射包含的元素大于 Integer.MAX_VALUE,则返回 Integer.MAX_VALUE。 返回: 此映射中的键-值映射关系数isEmptyboolean isEmpty() 如果此映射未包含键-值映射关系,则返回 true。 返回: 如果此映射未包含键-值映射关系,则返回 truecontainsKeyboolean containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true。更确切地讲,当且仅当此映射包含针对满足 (key==null ? k==null : key.equals(k)) 的键 k 的映射关系时,返回 true。(最多只能有一个这样的映射关系)。 参数: key - 测试是否存在于此映射中的键 返回: 如果此映射包含指定键的映射关系,则返回 true 抛出: ClassCastException - 如果该键对于此映射是不合适的类型(可选) NullPointerException - 如果指定键为 null 并且此映射不允许 null 键(可选)containsValueboolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。更确切地讲,当且仅当此映射至少包含一个对满足 (value==null ? v==null : value.equals(v)) 的值 v 的映射关系时,返回 true。对于大多数 Map 接口的实现而言,此操作需要的时间可能与映射大小呈线性关系。 参数: value - 测试是否存在于此映射中的值 返回: 如果此映射将一个或多个键映射到指定值,则返回 true 抛出: ClassCastException - 如果该值对于此映射是不合适的类型(可选) NullPointerException - 如果指定值为 null 并且此映射不允许 null 值(可选)getV get(Object key) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。 更确切地讲,如果此映射包含满足 (key==null ? k==null : key.equals(k)) 的键 k 到值 v 的映射关系,则此方法返回 v;否则返回 null。(最多只能有一个这样的映射关系)。 如果此映射允许 null 值,则返回 null 值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到 null。使用 containsKey 操作可区分这两种情况。 参数: key - 要返回其关联值的键 返回: 指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null 抛出: ClassCastException - 如果该键对于此映射是不合适的类型(可选) NullPointerException - 如果指定键为 null 并且此映射不允许 null 键(可选)putV put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值(当且仅当 m.containsKey(k) 返回 true 时,才能说映射 m 包含键 k 的映射关系)。 参数: key - 与指定值关联的键 value - 与指定键关联的值 返回: 以前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联)。 抛出: UnsupportedOperationException - 如果此映射不支持 put 操作 ClassCastException - 如果指定键或值的类不允许将其存储在此映射中 NullPointerException - 如果指定键或值为 null,并且此映射不允许 null 键或值 IllegalArgumentException - 如果指定键或值的某些属性不允许将其存储在此映射中removeV remove(Object key) 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。更确切地讲,如果此映射包含从满足 (key==null ? k==null :key.equals(k)) 的键 k 到值 v 的映射关系,则移除该映射关系。(该映射最多只能包含一个这样的映射关系。) 返回此映射中以前关联该键的值,如果此映射不包含该键的映射关系,则返回 null。 如果此映射允许 null 值,则返回 null 值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到 null。 调用返回后,此映射将不再包含指定键的映射关系。 参数: key - 从映射中移除其映射关系的键 返回: 以前与 key 关联的值;如果没有 key 的映射关系,则返回 null。 抛出: UnsupportedOperationException - 如果此映射不支持 remove 操作 ClassCastException - 如果该键对于此映射是不合适的类型(可选) NullPointerException - 如果指定键为 null 并且此映射不允许 null 键(可选)putAllvoid putAll(Map<? extends K,? extends V> m) 从指定映射中将所有映射关系复制到此映射中(可选操作)。对于指定映射中的每个键 k 到值 v 的映射关系,此调用等效于对此映射调用一次 put(k, v)。如果正在进行此操作的同时修改了指定的映射,则此操作的行为是不确定的。 参数: m - 要存储在此映射中的映射关系 抛出: UnsupportedOperationException - 如果此映射不支持 putAll 操作 ClassCastException - 如果指定映射中的键或值的类不允许将其存储在此映射中 NullPointerException - 如果指定映射为 null,或者此映射不允许 null 键或值,并且指定的映射包含 null 键或值 IllegalArgumentException - 如果指定映射中的键或值的某些属性不允许将其存储在此映射中clearvoid clear() 从此映射中移除所有映射关系(可选操作)。此调用返回后,该映射将为空。 抛出: UnsupportedOperationException - 如果此映射不支持 clear 操作keySetSet<K> keySet() 返回此映射中包含的键的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 返回: 此映射中包含的键的 set 视图valuesCollection<V> values() 返回此映射中包含的值的 Collection 视图。该 collection 受映射支持,所以对映射的更改可在此 collection 中反映出来,反之亦然。如果对该 collection 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。collection 支持元素移除,通过 Iterator.remove、Collection.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 返回: 此映射中包含的值的 collection 视图entrySetSet<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作,或者通过对迭代器返回的映射项执行 setValue 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 返回: 此映射中包含的映射关系的 set 视图equalsboolean equals(Object o) 比较指定的对象与此映射是否相等。如果给定的对象也是一个映射,并且这两个映射表示相同的映射关系,则返回 true。更确切地讲,如果 m1.entrySet().equals(m2.entrySet()),则两个映射 m1 和 m2 表示相同的映射关系。这可以确保 equals 方法在不同的 Map 接口实现间运行正常。 覆盖: 类 Object 中的 equals 参数: o - 要与此映射进行相等性比较的对象 返回: 如果指定的对象等于此映射,则返回 true 另请参见: Object.hashCode(), HashtablehashCodeint hashCode() 返回此映射的哈希码值。映射的哈希码定义为此映射 entrySet() 视图中每个项的哈希码之和。这确保 m1.equals(m2) 对于任意两个映射 m1 和 m2 而言,都意味着 m1.hashCode()==m2.hashCode(),正如 Object.hashCode() 常规协定的要求。 覆盖: 类 Object 中的 hashCode 返回: 此映射的哈希码值 另请参见: Map.Entry.hashCode(), Object.equals(Object), equals(Object)这是我从javaAPI中粘出来的,楼主可以去查一些具体实例帮助理解。 顶楼上,自已可以查看JAVA API 挺详细的 java api:http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html HashMap用得最多的方法是pub()和get()putpublic V put(K key, V value)在此映射中关联指定值与指定键。如果此映射以前包含了一个该键的映射关系,则旧值被替换。 指定者:接口 Map<K,V> 中的 put覆盖:类 AbstractMap<K,V> 中的 put参数:key - 指定值将要关联的键。value - 指定键将要关联的值。 返回:与指定键相关联的旧值,如果键没有任何映射关系,则返回 null。返回 null 还可能表示该 HashMap 以前将 null 与指定键关联。getpublic V get(Object key)返回指定键在此标识哈希映射中所映射的值,如果对于此键来说,映射不包含任何映射关系,则返回 null。返回值为 null 并不一定 表示对于该键来说,映射不包含任何映射关系,也可能是映射显式地将键映射到 null。使用 containsKey 方法可以区分这两种情况。 指定者:接口 Map<K,V> 中的 get覆盖:类 AbstractMap<K,V> 中的 get参数:key - 与要返回的值相关联的键。 返回:此映射对于指定键所映射的值,如果该映射对于此键不包含任何映射关系,则返回 null。另请参见:put(Object, Object) 举个简单的例子:HashMap<String, String> mapTest = new HashMap<String, String>();mapTest.put("1","a");mapTest.put("2","b");mapTest.put("3","c");System.out.println(mapTest.get("2"));结果为:b 常用的方法就是put()、get(),还有keySet()方法返回一个Set接口,使用Set中的iterator()方法. put get keySet entrySet Map有两种比较常用的实现:HashMap和TreeMap。HashMap也用到了哈希码的算法,以便快速查找一个键 如何获得Connection连接数? java中自带的邮件接收发送类,那个最好?? 关于JTable的使用 在线等! 一个java对象数组初始化 拖放的问题 关于treeModel刷新的问题,请高手指教~~~~~~~~~~~~~~~ 关于JMenuBar javadoc怎用呀?麻烦举个例 和大家讨论一下,搞开发的人,数据库应该掌握到什么程度? 如何通过jdbc将文件放到数据库里? 请教一个简单的正则表达式 关于ResultSet.next()的问题
主要是get put keySet remove size containsKey containsValue values
java.util
接口 Map<K,V>类型参数:
K - 此映射所维护的键的类型
V - 映射值的类型嵌套类摘要
static interface Map.Entry<K,V>
映射项(键-值对)。
方法摘要
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 视图。
方法详细信息
sizeint size() 返回此映射中的键-值映射关系数。如果该映射包含的元素大于 Integer.MAX_VALUE,则返回 Integer.MAX_VALUE。 返回:
此映射中的键-值映射关系数isEmptyboolean isEmpty() 如果此映射未包含键-值映射关系,则返回 true。 返回:
如果此映射未包含键-值映射关系,则返回 truecontainsKeyboolean containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true。更确切地讲,当且仅当此映射包含针对满足 (key==null ? k==null : key.equals(k)) 的键 k 的映射关系时,返回 true。(最多只能有一个这样的映射关系)。 参数:
key - 测试是否存在于此映射中的键
返回:
如果此映射包含指定键的映射关系,则返回 true
抛出:
ClassCastException - 如果该键对于此映射是不合适的类型(可选)
NullPointerException - 如果指定键为 null 并且此映射不允许 null 键(可选)containsValueboolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。更确切地讲,当且仅当此映射至少包含一个对满足 (value==null ? v==null : value.equals(v)) 的值 v 的映射关系时,返回 true。对于大多数 Map 接口的实现而言,此操作需要的时间可能与映射大小呈线性关系。 参数:
value - 测试是否存在于此映射中的值
返回:
如果此映射将一个或多个键映射到指定值,则返回 true
抛出:
ClassCastException - 如果该值对于此映射是不合适的类型(可选)
NullPointerException - 如果指定值为 null 并且此映射不允许 null 值(可选)getV get(Object key) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。 更确切地讲,如果此映射包含满足 (key==null ? k==null : key.equals(k)) 的键 k 到值 v 的映射关系,则此方法返回 v;否则返回 null。(最多只能有一个这样的映射关系)。 如果此映射允许 null 值,则返回 null 值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到 null。使用 containsKey 操作可区分这两种情况。 参数:
key - 要返回其关联值的键
返回:
指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
抛出:
ClassCastException - 如果该键对于此映射是不合适的类型(可选)
NullPointerException - 如果指定键为 null 并且此映射不允许 null 键(可选)putV put(K key,
V value) 将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值(当且仅当 m.containsKey(k) 返回 true 时,才能说映射 m 包含键 k 的映射关系)。 参数:
key - 与指定值关联的键
value - 与指定键关联的值
返回:
以前与 key 关联的值,如果没有针对 key 的映射关系,则返回 null。(如果该实现支持 null 值,则返回 null 也可能表示此映射以前将 null 与 key 关联)。
抛出:
UnsupportedOperationException - 如果此映射不支持 put 操作
ClassCastException - 如果指定键或值的类不允许将其存储在此映射中
NullPointerException - 如果指定键或值为 null,并且此映射不允许 null 键或值
IllegalArgumentException - 如果指定键或值的某些属性不允许将其存储在此映射中removeV remove(Object key) 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。更确切地讲,如果此映射包含从满足 (key==null ? k==null :key.equals(k)) 的键 k 到值 v 的映射关系,则移除该映射关系。(该映射最多只能包含一个这样的映射关系。) 返回此映射中以前关联该键的值,如果此映射不包含该键的映射关系,则返回 null。 如果此映射允许 null 值,则返回 null 值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到 null。 调用返回后,此映射将不再包含指定键的映射关系。 参数:
key - 从映射中移除其映射关系的键
返回:
以前与 key 关联的值;如果没有 key 的映射关系,则返回 null。
抛出:
UnsupportedOperationException - 如果此映射不支持 remove 操作
ClassCastException - 如果该键对于此映射是不合适的类型(可选)
NullPointerException - 如果指定键为 null 并且此映射不允许 null 键(可选)putAllvoid putAll(Map<? extends K,? extends V> m) 从指定映射中将所有映射关系复制到此映射中(可选操作)。对于指定映射中的每个键 k 到值 v 的映射关系,此调用等效于对此映射调用一次 put(k, v)。如果正在进行此操作的同时修改了指定的映射,则此操作的行为是不确定的。 参数:
m - 要存储在此映射中的映射关系
抛出:
UnsupportedOperationException - 如果此映射不支持 putAll 操作
ClassCastException - 如果指定映射中的键或值的类不允许将其存储在此映射中
NullPointerException - 如果指定映射为 null,或者此映射不允许 null 键或值,并且指定的映射包含 null 键或值
IllegalArgumentException - 如果指定映射中的键或值的某些属性不允许将其存储在此映射中clearvoid clear() 从此映射中移除所有映射关系(可选操作)。此调用返回后,该映射将为空。 抛出:
UnsupportedOperationException - 如果此映射不支持 clear 操作keySetSet<K> keySet() 返回此映射中包含的键的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 返回:
此映射中包含的键的 set 视图valuesCollection<V> values() 返回此映射中包含的值的 Collection 视图。该 collection 受映射支持,所以对映射的更改可在此 collection 中反映出来,反之亦然。如果对该 collection 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作除外),则迭代结果是不确定的。collection 支持元素移除,通过 Iterator.remove、Collection.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 返回:
此映射中包含的值的 collection 视图entrySetSet<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的 Set 视图。该 set 受映射支持,所以对映射的更改可在此 set 中反映出来,反之亦然。如果对该 set 进行迭代的同时修改了映射(通过迭代器自己的 remove 操作,或者通过对迭代器返回的映射项执行 setValue 操作除外),则迭代结果是不确定的。set 支持元素移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作可从映射中移除相应的映射关系。它不支持 add 或 addAll 操作。 返回:
此映射中包含的映射关系的 set 视图equalsboolean equals(Object o) 比较指定的对象与此映射是否相等。如果给定的对象也是一个映射,并且这两个映射表示相同的映射关系,则返回 true。更确切地讲,如果 m1.entrySet().equals(m2.entrySet()),则两个映射 m1 和 m2 表示相同的映射关系。这可以确保 equals 方法在不同的 Map 接口实现间运行正常。 覆盖:
类 Object 中的 equals 参数:
o - 要与此映射进行相等性比较的对象
返回:
如果指定的对象等于此映射,则返回 true
另请参见:
Object.hashCode(), HashtablehashCodeint hashCode() 返回此映射的哈希码值。映射的哈希码定义为此映射 entrySet() 视图中每个项的哈希码之和。这确保 m1.equals(m2) 对于任意两个映射 m1 和 m2 而言,都意味着 m1.hashCode()==m2.hashCode(),正如 Object.hashCode() 常规协定的要求。 覆盖:
类 Object 中的 hashCode 返回:
此映射的哈希码值
另请参见:
Map.Entry.hashCode(), Object.equals(Object), equals(Object)这是我从javaAPI中粘出来的,楼主可以去查一些具体实例帮助理解。
http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html
public V put(K key,
V value)在此映射中关联指定值与指定键。如果此映射以前包含了一个该键的映射关系,则旧值被替换。 指定者:
接口 Map<K,V> 中的 put
覆盖:
类 AbstractMap<K,V> 中的 put
参数:
key - 指定值将要关联的键。
value - 指定键将要关联的值。
返回:
与指定键相关联的旧值,如果键没有任何映射关系,则返回 null。返回 null 还可能表示该 HashMap 以前将 null 与指定键关联。get
public V get(Object key)返回指定键在此标识哈希映射中所映射的值,如果对于此键来说,映射不包含任何映射关系,则返回 null。返回值为 null 并不一定 表示对于该键来说,映射不包含任何映射关系,也可能是映射显式地将键映射到 null。使用 containsKey 方法可以区分这两种情况。 指定者:
接口 Map<K,V> 中的 get
覆盖:
类 AbstractMap<K,V> 中的 get
参数:
key - 与要返回的值相关联的键。
返回:
此映射对于指定键所映射的值,如果该映射对于此键不包含任何映射关系,则返回 null。
另请参见:
put(Object, Object)
HashMap<String, String> mapTest = new HashMap<String, String>();
mapTest.put("1","a");
mapTest.put("2","b");
mapTest.put("3","c");System.out.println(mapTest.get("2"));
结果为:
b
HashMap也用到了哈希码的算法,以便快速查找一个键