3.6 Map接口

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

3.6.1 HashMap使用

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

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

import java.util.*;

public class TestHashMap

{

​         public static void main(String[] args) 

​         {

//使用HashMap存储域名和含义键值对的集合

​                  Map domains = new HashMap();

​                  domains.put("com","工商企业");

​                  domains.put("net","网络服务商");

​                  domains.put("org","非营利组织");

​                  domains.put("edu","教研机构");

​                  domains.put("gov","政府部门");

​                  //通过键获取值String op = (String)domains.get("edu");

​                  System.out.println("edu国际域名对应的含义为:" + op);

​                  //判断是否包含某个键

​                  System.out.println("domains键值对集合中是否包含gov:" + domains.containsKey("gov"));

​                  //删除键值对

​                  domains.remove("gov");

​                  System.out.println("删除后集合中是否包含gov:" + domains.containsKey("gov"));

​                  //输出全部键值对

​                  System.out.println(domains);

​         }

}
copy

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

图3.12 HashMap的使用

3.6.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集合的键值对的个数。