映射关系接口Map

一 Map集合概述

  • Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value,key和value都可以是任何引用类型的数据。Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false。
  • key和value之间存在单向一对一关系,即通过指定的key,总能找到唯一的、确定的value。从Map中取出数据时,只要给出指定的key,就可以取出对应的value。

     

二 代码示例

import java.util.*;

public class MapTest
{
	public static void main(String[] args)
	{
		Map map = new HashMap();
		// 成对放入多个key-value对
		map.put("Java" , 109);
		map.put("Linux" , 10);
		map.put("网络管理工具" , 79);
		// 多次放入的key-value对中value可以重复
		map.put("C++" , 99);
		// 放入重复的key时,新的value会覆盖原有的value
		// 如果新的value覆盖了原有的value,该方法返回被覆盖的value
		System.out.println(map.put("Linux" , 99)); // 输出10
		System.out.println(map); // 输出的Map集合包含4个key-value对
		// 判断是否包含指定key
		System.out.println("是否包含值为 Linux key:"
			+ map.containsKey("Linux")); // 输出true
		// 判断是否包含指定value
		System.out.println("是否包含值为 99 value:"
			+ map.containsValue(99)); // 输出true
		// 获取Map集合的所有key组成的集合,通过遍历key来实现遍历所有key-value对
		for (Object key : map.keySet() )
		{
			// map.get(key)方法获取指定key对应的value
			System.out.println(key + "-->" + map.get(key));
		}
		map.remove("网络管理工具"); // 根据key来删除key-value对。
		System.out.println(map); // 输出结果不再包含 网络管理工具=79 的key-value对
	}
}

三 运行结果

10
{Java=109, C++=99, Linux=99, 网络管理工具=79}
是否包含值为 Linux key:true
是否包含值为 99 value:true
Java-->109
C++-->99
Linux-->99
网络管理工具-->79
{Java=109, C++=99, Linux=99}

四 代码说明

添加key-value对时,Map允许多个value重复,但如果添加key-value对时Map中已有重复key,那么新添加的value会覆盖该key原来对应的value,该方法将会返回被覆盖的value。

猜你喜欢

转载自cakin24.iteye.com/blog/2324241