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


public class MapTest {

	/**关于map集合的常用方法
	 * void clear(); 清空Map
	boolean isEmpty();判断该集合是否为空
	int size(); 获取Map中键值对的个数。 
	
	Object put(Object key, Object value); 向集合中添加键值对
	Object get(Object key);通过key获取value 
	
 	boolean containsKey(Object key); 判断Map中是否包含这样的key
 	boolean containsValue(Object value); 判断Map中是否包含这样的value 
 	
 	Object remove(Object key); 通过key将键值对删除.
 	
 	Collection values(); 获取Map集合中所有的value
 	
 	Set keySet(); 获取Map中所有的key
 	
 	Set entrySet();返回此映射中包含的映射关系的 Set 视图。
   
 	注意:存储在Map集合key部分的元素需要同时重写hashCode+equals方法.
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1.创建map集合
		Map personmap = new HashMap();
		//2.向Map集合中添加元素
		personmap.put("10000", "nihao");
		personmap.put("10002", "wobuhao");
		personmap.put("1000","wohenhao");
		personmap.put("10000","shabi");
		//3.判断键值对的个数,map中的key是无序不可重复的,如果重复,会覆盖原来的value值
		System.out.println(personmap.size());
		//4.判读集合中是否包含某个key值
		System.out.println(personmap.containsKey("10000"));
		//5.判断集合中是否包含某个value值。
		//注意map中的重复了,value采用覆盖。
		System.out.println(personmap.containsValue("shabi"));
		//6.通过key获取value
		String key1="10000";
		System.out.println(personmap.get(key1));
		//7.通过key删除键值对
		System.out.println(personmap.size());
		personmap.remove(key1);
		System.out.println(personmap.size());
		//8.获取所有的value值
		Collection c = personmap.values();
		Iterator it = c.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
		//9.获取所有的key,并且遍历map集合
		Set key = personmap.keySet();
		it = key.iterator();
		Object id = null;
		Object name = null;
		while(it.hasNext()){
			id = it.next();
			name = personmap.get(id);
			System.out.println(id+"----->"+name);
		}
		//10.将map装换成set集合
		Set mapToSet = personmap.entrySet();
		it = mapToSet.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
		//11.properties
		//HashMap默认初始化容量是16,默认加载因子0.75
		//Hashtable默认初始化容量是11,默认加载因子是0.75
		//java.util.Properties;也是由key和value组成,但是key和value都是字符串类型
		Properties p = new Properties();
		p.setProperty("username", "zhangdan");
		p.setProperty("id", "100");
		p.setProperty("grade", "137");
		//3.取,通过key获取value
		String v1 = p.getProperty("driver");
		String v2 = p.getProperty("username");
		String v3 = p.getProperty("password");
		String v4 = p.getProperty("url");
				
		System.out.println(v1);
		System.out.println(v2);
		System.out.println(v3);
		System.out.println(v4);
	}
}