Java SE 048 Map深入详解及遍历Map的两种实现手段

Java SE 048 Map深入详解及遍历Map的两种实现手段

1.Map(映射)

将一个键映射到它的值上。一个Map不能包含重复的键。每一个键可以映射到一个值上面,不可以映射到多个值上。

只要出现map就要想到是一对儿。
put(K key,V value);将指定的值关联到指定到关联的键当中

## 2.values()与keySet()返回的类型为什么不同
是因为值集当中可以有重复值,但是键集当中不能有重复值。
Set符合键集不可以重复,而Collection符合值集允许有重复值。

package com.javase.map;

import java.util.HashMap;

public class MapTest2 {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		HashMap map = new HashMap();
		
		String str = "zhangsan";
		map.put("a", str);
		map.put("b", str);
		
		System.out.println(map);
	}
}

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

3.遍历map集合

package com.javase.map;

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

public class MapTest3 {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		HashMap map = new HashMap();
		map.put("a", "aa");
		map.put("b", "bb");
		map.put("c", "cc");
		map.put("d", "dd");
		map.put("e", "ee");
		map.put("f", "ff");
		
		Set set = map.keySet();
		for(Iterator iter = set.iterator(); iter.hasNext();){
			String key = (String)iter.next();
			String value =(String)map.get(key);
			System.out.println(key+"="+value);
		}
	}
}

4.通过命令行传入参数,统计命令行参数相同参数出现的次数

package com.javase.map;

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

public class MapTest4 {
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
		HashMap map = new HashMap();
		
		for(int i = 0; i < args.length; i++){
			//如果不存在这个元素就返回null,则此时可将这个值放进map进行记录,不为null表明以前它已经存在过了
			//存在则可以将其取出来,然后再放回去即可
			if(map.get(args[i])==null){
				map.put(args[i], new Integer(1));
			}else{
				Integer in= (Integer)map.get(args[i]);
				in = new Integer(in.intValue()+1);
				map.put(args[i], in);
			}
		}
		
		for(Iterator iter = map.keySet().iterator();iter.hasNext();){
			String key = (String)iter.next();
			Integer value = (Integer)map.get(key);
			System.out.println(key+"出现"+value+"次");
		}
	}
}

你可能感兴趣的:(01_java基础)