1.生成stream三中方式
1.1List<Student>list=new ArrayList ();
Stream stream1=list.stream();
1.2Stream stream2=Stream.of("hello","hi","hello");
1.3Stream stream3=Arrays.asList("hello","hi","good").stream();
文章来源地址https://www.toymoban.com/news/detail-860791.html
2.stram流常用函数
2.1distinct:去从
lstream2.distint().foreach(System.out.println;)
结果:
hello
hi
2.2filter:过滤(筛选)
List <Student>=stream1.filter(s->s.getAge==10).collect(collector.asList())
文章来源:https://www.toymoban.com/news/detail-860791.html
2.3 map():
2.3.1选择字段,生成一个新的List集合
List<String> lists=stream.map(Student::getName).collect(collector.asList())
2.3.2对流中的对象的成员变量进行设置
List <Student> stus=stream.map(s->{
s.setAge(12);}
).collect.collector.asList());
2.4.sorted():排序
2.4.1默认升序
2.4.2自定义排序
按照学生的年龄逆序排序
stream1.sort(Comparator.comparing(Student::getAge()).reverce());
2.5 max(),min()求最大最小值
2.6 groupingBy()分组
例如:按照学生年龄进行分组:List<Map<String,Student>> listmaps=stream1.collect(Collector.gruopingBy(Student::getAge ());
分组统计:
Map<String,Intger> listmaps=stream1.collect(Collectors.gruopingBy(Student::getAge (),Collectors.counting()));
分组求和:Map<String,Long> listmaps=stream1.collect(Collectors.gruopingBy(Student::getName (),Collectors.summingLong(Student::getAge ()));
3.stream流的升级paralleStream (并行流)
对集合中的元素进行并行处理
List <Student> stus=stream.map(s->{
s.setAge(12);}
).collect.collector.asList());
List <Student> stus=list.parralleStream.map(s->{
s.setAge(12);}
).collect.collector.asList());
到了这里,关于JDK1.8新特性之stream流基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!