Java HashMap 集合笔记

需要导入的包


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

HashMap的基本方法

		//泛型 <>  表示存储数据的类型
		//<Integer,String>,表示key是Integer  value是String
		
		Map<Integer,String> map = new HashMap<Integer,String>();	
		
		map.put(1,"第一名");
		map.put(2,"第二名");
		map.put(3,"第三名");
		map.put(4,"第四名");
		
		int size = map.size();	//Map集合 映射的数量
		System.out.println("mapsize()="+size);		//输出结果:4
		
		//获取所有的key,返回类型为Set
		Set<Integer> keys = map.keySet();		//Set接口 
		System.out.println("map.keySet()="+ keys);		//输出结果:[1,2,3,4]
		
		//获得所有的value,返回类型为
		Collection<String> values = map.values();		//Collection接口 	
		System.out.println("map.values():" + values);		
		//输出结果:[第一名, 第二名, 第三名, 第四名]
		
		//map.get(key)  获取key为 2,对应的value值
		System.out.println(map.get(2));		//输出结果:第二名
		//如果key或者value为空,则返回 null 
		System.out.println(map.get(10));	//输出结果:null
		
		//遍历Map集合
		map.forEach((k,v)->{
			System.out.println(k+":"+v);
		});
		/*输出结果:
		 * 
		 *  1:第一名
			2:第二名
			3:第三名
			4:第四名
		 * 
		 * */
		System.out.println();
		
		//map.remove(key) 根据key移除map中的与该key相关的映射,
		map.remove(4);
		map.forEach((k,v)->{
			System.out.println(k+":"+v);
		});
		/*输出结果:
		 * 
		 *  1:第一名
			2:第二名
			3:第三名
		 * 
		 * */
		System.out.println();
		
		//map1.putAll(map2)//把一个map2集合合并到另一个map1集合里,若key有重复的,则map2的键值覆盖与map1重复的键值
		//map.clear();//清空Map集合中所有的键值,清空后,map.size()为0
		

遍历HashMap


		//Map.Entry
		//Entry是Map集合的一个内部接口,用于封装Map集合的一组键值(key和value)
		//可通过entrySet()一次性同时获取key和value
		
		Map<Integer,String> map2 = new HashMap<Integer,String>();
		map2.put(1,"First");
		map2.put(2,"Second");
		map2.put(3,"Third");
		map2.put(4,"Fourth");
		
		//遍历Map方法1,二次取值,效率最慢
		for(Integer key : map2.keySet()) {
			System.out.println(key+" : "+map2.get(key));
		}
		
		
		//遍历Map方法2
		map2.forEach((k,v)->{
			System.out.println(k+":"+v);
		});
		
		
		//遍历Map方法3	//只取一次 速度最快
		System.out.println("通过Map.entrySet()使用iterator遍历key和value:"); 
		
		Map.Entry<Integer, String> entry;
		
		//Iterator只能在Collection集合中使用,不能在Map中使用,可通过Map的keySet() entrySet() 使用Iterator
		
		Iterator<Entry<Integer, String>> it = map2.entrySet().iterator();		
		while(it.hasNext()) {
			entry = it.next();
			System.out.println( entry.getKey() + " : " + entry.getValue() ); 
		}
		
		//遍历Map方法4
		System.out.println("通过Map.entrySet遍历key和value");
		
		for(Map.Entry<Integer,String> entry2 : map2.entrySet()) {
			System.out.println( entry2.getKey() + " : " + entry2.getValue() );
		}
		
		//Map.entrySet()迭代器会生成Entry Iterator,其返回的实例是一个包含key/value键值对的对象。
		//而keySet()中迭代器返回的只是key对象,还需要到map中二次取值。故entrySet()要比keySet()快一倍左右。
		

参考链接:https://blog.csdn.net/songfeihu0810232/article/details/80156626
参考链接:https://blog.csdn.net/weixin_41763995/article/details/80223244

猜你喜欢

转载自blog.csdn.net/duanbaoke/article/details/85222653