java8 中常用 的常用新特性

Java8中应用最多的就是流,相比以往的迭代器,增强for循环快50多倍,日常开发中用的最多就是List 转map
获取对象属性的集合,List 去重这个Java8中已经有现成的方法,还有数据分组,Java8已经给我们提供好了,不了解java8的新特性是不行de。

java8的新特性还有Function   Optional 接口,接口默认方法等,这个用的不多。 Function 接口实际上就是和匿名函数差不多。Predicate的方法可以判读属性是否存在。


//list 转map

Map<String, Integer> map = sList.stream()
	                .collect(Collectors.toMap(Student::getStudentName, 
 Student::getStudentAge));


//集合遍历  
 map.forEach((k, v) -> System.out.println(k + "-->" + v));
	  
 //将集合转换为map
 Map<String,Student>   map2 =                 sList.stream().collect(Collectors.toMap(Student::getStudentName,Function.identity(), (t1,t2)->t1));
		 map2.forEach((k,v)->{
			 System.out.println(k+"->"+v);
		 });

//分组
Map<String,List<Student>> map3 =         sList.stream().collect(Collectors.groupingBy(Student::getStudentName));
		     map3.forEach((k,v)->{
			 System.out.println(v.toString());
		 });
List<Student> filterList = sList.stream().filter(a -> a.getStudentName().equals("zhangsan")).collect(Collectors.toList());
		 System.out.println(filterList.toString());
		 
//Optional 常用方法
         Optional<Integer> a1 = Optional.of(11);
		 Optional<Integer> a2 = Optional.of(24);
		 //如果存在则返回1,如何不存在则返回11


	 String string ="Helloworld";
	 List<String>stringList = Arrays.asList(string).stream().map(str2 ->str2.split("")).flatMap(Arrays::stream).distinct().collect(Collectors.toList());

//flatMap 和 map 的用法
	 List<String> stringList2= sList.stream().flatMap(item->Arrays.stream(item.split(""))).distinct().collect(Collectors.toList());
	 List<Stream<String>> streamList = stringList.stream().map(item->Arrays.stream(item.split(""))).distinct().collect(Collectors.toList());
	 List<String> result = stringList.stream().map(item2>item2.split("")).flatMap(Arrays::stream).distinct().collect(Collectors.toList());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值