java8 lambda表达式处理map


public class Student {
    private String id;
    private String name;
    private String level;
}
List<Student> list = new ArrayList<>();
list.add(new Student("1","张三" + 1,"A" + 1));
list.add(new Student("2","张三" + 2,"A" + 2));
list.add(new Student("1","张三" + 3,"A" + 3));
list.add(new Student("4","张三" + 4,"A" + 4));
list.add(new Student("5","张三" + 5,"A" + 5));
		/**
		 * map有3种重载
		 */
		//1 仅返回key,value的映射关系
		Map<String, String> map1 = list.stream()
			.collect(
					Collectors
						.toMap(
								Student::getId, 
								Student::getName));
		
		//2 用于针对有重复键的映射关系
		Map<String, String> map2 = list.stream()
			.collect(
					Collectors
						.toMap(
								//用id做map的key,name做map的val,
								//同一个key,可能会有多个val,用新val还是老val
								//可以这样设置
								item -> item.getId(), 
								item -> item.getName(), 
								(oldVal, currVal) -> oldVal));
		
		//3 用于返回某些特定map
		Map<String, String> map3 = list.stream()
				.collect(
						Collectors
							.toMap(
									//用id做map的key,name做map的val,
									//同一个key,可能会有多个val,用新val还是老val
									//可以这样设置
									item -> item.getId(), 
									item -> item.getName(), 
									(oldVal, currVal) -> oldVal,
									HashMap::new));


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM