Map接口和HashMap类

来自CloudWiki
Cloud17讨论 | 贡献2018年4月1日 (日) 04:52的版本 (创建页面,内容为“前面我们简单介绍了Map接口和HashMap类,下面我们看一下Map集合中的具体应用。 == 1.Map接口中的常用方法 == 表6-2 map接口常用…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

前面我们简单介绍了Map接口和HashMap类,下面我们看一下Map集合中的具体应用。

1.Map接口中的常用方法

表6-2 map接口常用方法

方法名	说    明
Object put(Object key,Object value)	插入新的对象,并用key作为其键字
void putAll(Map t)	将另一个Map中的所有对象复制进来
Set entrySet()	返回映射中的关键字-值对的集合
Set keySet()	返回映射中所有关键字的集合
Collection values()	返回映射中所有值的集合
Object remove(Object key)	删除指定的对象
Object get(Object key)	获取与key相联系的对象
boolean containsKey(Object key)	判断是否包含指定的键值
Boolean containsValue(Object value)	判断是否包含指定的对象

下面程序演示了Map接口中的方法。 public static void main(String[] args) { Map<String, String> map = new HashMap(); //添加元素 map.put("01", "Think in java"); map.put("02", "java 讲义"); map.put("03", "java 语言程序设计"); map.put("04", "疯狂java讲义"); //删除元素 map.remove("03"); System.out.println("集合中是否包含 \"java 语言程序设计\" :"+map.containsKey("03")); //修改元素的值 map.put("02", "平凡的世界"); System.out.println("集合中是否包含 \"java 讲义\" :"+map.containsValue("java 讲义")); //获取集合中的元素 System.out.println("编号02的名称为:"+map.get("02")); } 程序运行结果如下:

集合中是否包含 "java 语言程序设计" :false
集合中是否包含 "java 讲义" :false
编号02的名称为:平凡的世界

2.遍历Map集合

Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。如果要查询某个 Map以了解其哪些元素满足特定查询,或如果要迭代其所有元素,首先要使用Map提供的方法获取该 Map的“视图”,具体有两种遍历方法。

第一种:使用KeySet()方法。

KeySet()方法返回映射中所有关键字的Set集合。迭代键值Set,通过Map接口的get(key)方法,获取每一个键对应的值。具体用法如下: public static void main(String[] args) { Map<String, String> map = new HashMap(); map.put("01", "Think in java"); map.put("02", "java 讲义"); map.put("03", "java 语言程序设计"); map.put("04", "疯狂java讲义"); // 先获取map集合的所有键的set集合,keyset() Set<String> keys = map.keySet(); System.out.println("编号\t书名"); System.out.println("***********************"); //遍历keyset,通过map.get(key)方法获得value的值 for (String key : keys) System.out.println(key + "\t" + map.get(key)); }

第二种:使用entrySet()方法

Set<Map.Entry<K,V>> entrySet()方法返回此映射中包含的映射关系的 Set 视图。Map.Entry表示映射关系(一个关系就是一个键-值对),就是把(key-value)作为一个整体一对一对地存放到Set集合当中的。迭代后可以使用Map.Entry接口的getKey()和getValue()两种方法来取key和value。具体用法如下:

public static void main(String[] args) { Map<String, String> map = new HashMap(); map.put("01", "Think in java"); map.put("02", "java 讲义"); map.put("03", "java 语言程序设计"); map.put("04", "疯狂java讲义"); // 先获取map集合的Map.Entry<key, value>的set集合, Set<Map.Entry<String, String>> entrys = map.entrySet(); System.out.println("编号\t书名"); System.out.println("***********************"); // 通过Map.Entry对象过得getKey和getValue方法获得键和值 for (Map.Entry<String, String> e : entrys) System.out.println(e.getKey() + "\t" + e.getValue()); }

返回 Java程序设计