现在的位置: 首页 > 综合 > 正文

22、集合之Set之Map

2018年02月06日 ⁄ 综合 ⁄ 共 1927字 ⁄ 字号 评论关闭

Map——映射

An object that maps keys to values.A map cannot contain duplicate keys;each key can map to at most one value.

Map是将键映射到值的对象,一个映射不能包含重复的键,一个键最多只能映射到一个值。

1、Map是一个接口,它的实现类:HashMap

import java.util.HashMap;

public class HashMap1
{
	public static void main(String[] args)
	{
		HashMap map = new HashMap();
		
		map.put("a", "zhangsan");
		map.put("b", "lisi");
		map.put("c", "wangwu");
		map.put("a", "zhaoliu");
		
		System.out.println(map);
		//打印{a=zhaoliu, c=wangwu, b=lisi}
		
		String value = (String)map.get("b");
		System.out.println(value); //打印lisi
		
		String value2 = (String)map.get("d");
		System.out.println(value2); //打印null
		
	}
}

HashMap存入数据使用put()方法,取出特定键的值使用get()方法。

对于HashMap的keySet()方法返回此映射中所包含的键的 Set 视图,values()方法返回此映射所包含的值的
Collection
视图。

Map的keySet()方法会返回key的集合,因为Map的键是不能重复的,因此keySet()方法的返回类型是Set;而Map的值是可以重复的,因此values()方法的返回类型是Collection,可以容纳重复的元素。

2、使用HashMap统计命令行参数及个数:如java MapTest4 hello world hello welcome

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

public class MapTest4
{
	public static void main(String[] args)
	{
		HashMap map = new HashMap();
		
		for(int i =0; i < args.length;i++ )
		{
			if(null==map.get(args[i]))
			{
				map.put(args[i],new Integer(1));
			}
			else
			{				
				int num = ((Integer)map.get(args[i])).intValue();
				map.put(args[i], new Integer(num +1));
			}
		}
		
		Set set = map.keySet();
		
		for(Iterator iter = set.iterator();iter.hasNext();)
		{
			String key = (String)iter.next();
			Integer value = (Integer)map.get(key);
			
			System.out.println(key + ":" + value);
		}
		
	}
}

以上是先得到map的一个key集,然后使用迭代器遍历key,然后使用map.get(key)得到值,从而实现map的遍历

2、使用Map的内部类Entry来遍历Map

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapTest5
{
	public static void main(String[] args)
	{
		HashMap map = new HashMap();
		
		map.put("a", "aaaaa");
		map.put("b", "bbbbb");
		map.put("c", "cccccc");
		map.put("d", "ddddd");
		
		Set set = map.entrySet();
		
		for(Iterator iter = set.iterator();iter.hasNext();)
		{
			Map.Entry entry = (Map.Entry)iter.next();
			
			String key = (String)entry.getKey();
			String value = (String)entry.getValue();
			
			System.out.println(key + ":" + value);
		}
	}
}

 

3、TreeMap,与TreeSet类似,只不过TreeMap是按照映射的键(key)的顺序来进行排序的。

抱歉!评论已关闭.