Map

Map 是键值对的集合。Map 中的每个元素是一个键值对,即一个 (key)和它对应的对象 (value)。对于 Map 容器,我们可以通过键来找到对应的对象。

哈希表是 Map 常见的一种实施方式。

我们需要声明 Map 的键和值的类型。我们下面实施一个 HashMap

import java.util.*;

public class Test
{
    public static void main(String[] args)
    {
        Map m1 = new HashMap();
        m1.put("jimmy", 12);  // 添加元素
        m1.put("Jerry", 5);
        m1.put("Tom", 18);

        System.out.println(m1.get("jimmy"));  // 获取元素
    }
}

输出:

12

Map 的官方文档:https://docs.oracle.com/javase/6/docs/api/java/util/Map.html




size()

size() 方法返回 Map 的长度。

clear()

clear() 方法清空一个 Map

isEmpty()

判断一个 Map 是否为空。

Map m1 = new HashMap();
m1.put("jimmy", 12);
m1.put("Jerry", 5);
m1.put("Tom", 18);

m1.clear();  // 清空 m1
System.out.println(m1.isEmpty());  // 是否为空
System.out.println(m1.size());  // 返回长度

输出:

true
0
containsKey()

containsKey() 方法判断 Map 中是否包含有指定的键 key

containsValue()

containsValue() 方法判断 Map 中是否包含有指定的值 value

Map m1 = new HashMap();
m1.put("jimmy", 12);
m1.put("Jerry", 5);
m1.put("Tom", 18);

System.out.println(m1.containsKey("jimmy"));
System.out.println(m1.containsKey("tommy"));

System.out.println(m1.containsValue(12));
System.out.println(m1.containsValue(4));

输出:

true
false
true
false
equals()

判断两个 Map 是否相等。

Map m1 = new HashMap();
m1.put("jimmy", 12);
m1.put("Jerry", 5);
m1.put("Tom", 18);

Map m2 = new HashMap();
m2.put("Jerry", 5);
m2.put("Tom", 18);
m2.put("jimmy", 12);

System.out.println(m1.equals(m2));  // 判断 m1 和 m2 是否等价

输出:

true
get()

通过键获取值,如果键不存在返回 null

Map m1 = new HashMap();
m1.put("jimmy", 12);
m1.put("Jerry", 5);
m1.put("Tom", 18);

System.out.println(m1.get("Jerry"));
System.out.println(m1.get("tonny"));

输出:

5
null




Map 的遍历

entrySet()

entrySet() 方法可以把 Map 中的集合中的映射关系取出放到一个 Set 中,该 Set 中的元素通过 getKey()getValue() 方法获取键和值。

Map m1 = new HashMap();
m1.put("jimmy", 12);  // 添加元素
m1.put("Jerry", 5);
m1.put("Tom", 18);

// 通过 entrySet() 方法将 Map 集合中的映射关系取出
Set> e1 = m1.entrySet();
// 将关系集合 entrySet 进行迭代,存放到迭代器中  
Iterator> it = e1.iterator();

while (it.hasNext()) {
    // 获取 Map.Entry 关系对象 me
    Map.Entry me = it.next();
    // 通过关系对象获取 key
    String key = me.getKey();
    // 通过关系对象获取 value
    Integer value = me.getValue();

    System.out.println("key: " + key + " --> value: " + value);
}

输出:

key: Tom --> value: 18
key: Jerry --> value: 5
key: jimmy --> value: 12


keySet()

keySet() 方法可以把 Map 中的键取出,放到一个 Set 中。

Map m1 = new HashMap();
m1.put("jimmy", 12);  // 添加元素
m1.put("Jerry", 5);
m1.put("Tom", 18);

//先获取map集合的所有键的Set集合
Set ks = m1.keySet();
//有了Set集合,就可以获取其迭代器。
Iterator it = ks.iterator();

while (it.hasNext()) {
    String key = it.next();
    //有了键可以通过map集合的get方法获取其对应的值。
    Integer value = m1.get(key);

    System.out.println("key: " + key + " --> value: " + value);
}

输出:

key: Tom --> value: 18
key: Jerry --> value: 5
key: jimmy --> value: 12

你可能感兴趣的:(Map)