3.10 Map接口

  Map接口定义了存储“键(key)值(value)”映射对的方法。

3.10.1 HashMap使用

  HashMap是Map接口的一个常用实现类,下面通过一个案例简要介绍HashMap的使用。

  我们知道,国际域名是使用最早也是使用最广泛的域名,例如表示工商企业的.com,表示网络提供商的.net,表示非营利组织的.org等。现在需要建立域名和含义之间的键值映射,例如com映射工商企业,org映射非营利组织,可以根据com查到工商企业,可以通过删除org删除对应的非营利组织,这样的想法就可以通过HashMap来实现,具体代码如下:

  1. import java.util.*;
  2. public class TestHashMap
  3. {
  4. public static void main(String[] args)
  5. {
  6. //使用HashMap存储域名和含义键值对的集合
  7. Map domains = new HashMap();
  8. domains.put("com","工商企业");
  9. domains.put("net","网络服务商");
  10. domains.put("org","非营利组织");
  11. domains.put("edu","教研机构");
  12. domains.put("gov","政府部门");
  13. //通过键获取值
  14. String op = (String)domains.get("edu");
  15. System.out.println("edu国际域名对应的含义为:" + op);
  16. //判断是否包含某个键
  17. System.out.println("domains键值对集合中是否包含gov:" + domains.containsKey("gov"));
  18. //删除键值对
  19. domains.remove("gov");
  20. System.out.println("删除后集合中是否包含gov:" + domains.containsKey("gov"));
  21. //输出全部键值对
  22. System.out.println(domains);
  23. }
  24. }

  编译、运行程序,运行结果如图3.12所示。

3.10 Map接口 - 图1


图3.12 HashMap的使用

3.10.2 Map接口方法

  上面通过一个简单的例子,让大家对Map接口的使用有了直接的认识,下面总结Map接口的常用方法如下。

  • Object put(Object key,Object value)

  将指定键值对添加到Map集合中,如果此Map集合以前包含一个该键的键值对,则用指定值替换旧值。

  • Object get(Object key)

  返回指定键所对应的值,如果此Map集合中不包含该键,则返回null。

  • Object remove(Object key)

  如果存在指定键的键值对,则将该键值对从此Map集合中移除。

  • Set keySet()

  返回此 Map 集合中包含的键的 Set集合。在上面的程序最后添加下面的语句,System.out. println(domains.keySet());,则会输出[com, edu, org, net]。

  • Collection values()

  返回此Map集合中包含的值的 Collection集合。在上面的程序最后添加下面的语句,System.out.println(domains.values());,则会输出[工商企业,教研机构,非营利组织,网络服务商]。

  • boolean containsKey(Object key)

  如果此Map集合包含指定键的键值对,则返回true。

  • boolean containsValue(Object value)

  如果此Map集合将一个或多个键对应到指定值,则返回true。

  • int size()

  返回此Map集合的键值对的个数。