Map接口与HashMap实现类

主讲人:王少华  QQ群号:483773664

学习目标:

  1. 掌握Map接口的特点

  2. 掌握HashMap的使用

一、需求

  • 建立国家英文简称和中文全名间的键值映射。比如CN--中华人民共和国

  • 并通过key对value进行操作。比如根据"CN"可以查找到“中华人民共和国”

二、分析

Java集合框架中提供了Map接口,专门用来处理键-值映射数据的存储

Map中可以存储多个元素,每个元素都由两对象组成,即一个键对象和一个值对象,可以根据键实现对应值的映射。

三、Map接口的概述

(一)Map接口的特点

  1. Map接口存储一组成对的键--值对象,提供key(键)到value(值)的映射

  2. Map中的key不要求有序,不允许重复

  3. value同样不要求有序,但允许重复

  4. 最常用的Map的实现类是HashMap

(二)Map的常用方法

  1. Object  put(Object key, Object val)   以“键-值对”的方式进行存储   

  2. Object  get (Object key)   根据键返回相关联的值,如果不存在指定的键,返回null   

  3. Object  remove (Object key)   删除由指定的键映射的“键-值对”   

  4. int  size()   返回元素个数   

  5. Set  keySet ()   返回键的集合   

  6. Collection  values ()   返回值的集合   

  7. boolean  containsKey  (Object key)   如果存在由指定的键映射的“键-值对”,返回true   

四、参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
 *
 * @author wangsh
 * @createDate:2016年4月28日
 * 功能描述:
 *  建立国家英文简称和中文全名间的键值映射。比如CN--中华人民共和国
    并通过key对value进行操作。比如根据"CN"可以查找到“中华人民共和国”
 */
public class Test {
    public static void main(String[] args) {
        // 1、使用HashMap存储多组国家英文简称和中文全称的键值对
        Map countries = new HashMap();
        countries.put("CN", "中华人民共和国");
        countries.put("RU", "俄罗斯联邦");
        countries.put("FR", "法兰西共和国");
        countries.put("US", "美利坚合众国");
        // 2、显示"CN"对应国家的中文全称
        String country = (String) countries.get("CN");
        System.out.println("CN对应的国家是:" + country);
    }
}

五、其他方法

(一)显示集合中元素个数

1
System.out.println("Map中共有" + countries.size() + "组数据");

(二)判断Map中是否存在"FR"键 

1
System.out.println("Map中包含FR的key吗?" + countries.containsKey("FR"));

(三)删除元素

1
countries.remove("FR");

(四)遍历Map

1
2
3
4
5
Set keys = countries.keySet();
for(Object key:keys){
       String value = (String) countries.get(key);
       System.out.println(key+"\t"+value);
}

(五)清空 HashMap并判断 

1
2
3
countries.clear();
if (countries.isEmpty())
    System.out.println("已清空Map中数据!");

六、视频地址

http://edu.51cto.com/course/course_id-6028.html