为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第八天+Lambda的Stream流

标签:
Java

课程名称:一课掌握Lambda表达式语法及应用

课程章节:第四章第二节

主讲老师:大牧莫邪


课程内容:

今天主要学了一Lambda中的Stream的流的使用和注意的地方

6:Stream概述

public class Test2 {
   public static void main(String[] args) {
       List<String> accounts = new ArrayList<>();
       accounts.add("shubei");
       accounts.add("hh");
       accounts.add("beitah");

       //1.1:业务要求,长度大于等于5的有效账号
       for (String account : accounts) {
           if(account.length() >= 5){
               System.out.println("有效账号是" + account);
           }
       }

       //1.2:迭代方式
       Iterator<String> it = accounts.iterator();
       while(it.hasNext()){
           String account = it.next();
           if(account.length() >= 5){
               System.out.println("有效账号是:" + account);
           }
       }

       //1.3:stream结合lambda方式,完成业务处理
       List validList = accounts.stream().filter(s -> s.length() >= 5).collect(Collectors.toList());
       System.out.println(validList);
   }
}

7:Stram API

/**
* 1:聚合操作
*
* 2:stream的处理流程
*    数据源
*    数据转换
*    获取结果
*
* 3:获取Stream对象
*    1:从集合或者数组中获取
*         Collection.stream(),如account.stream()
*         Collection.parallelStream()  获取一个支持并发的Stream对象
*         Arrays.stream(T t)
*    2:BufferReader
*          BufferRader.lines() -> stream()
*    3:静态工厂
*          java.util.stream.IntStream.range()
*          java.nio.file.Files.walk()
*    4:自动构建
*          java.util.Spliterator
*    5:更多的方式
*          Random.ints()
*          Pattren.splitAsStream()
* 4:中间操作API
*      中间操作是一个Stream,中间操作可以是一个或者多个的中间操作,需要注意的是,
*      中间操作只记录操作方式,不做具体执行,知道结束操作发生时,才做数据的最终执行
*      中间操作,就是业务逻辑处理
*      中间操作过程:无状态:数据处理时,不受前置中间操作的影响
*                      map/fiter/peek/parallel/sequential/unordered
*                   有状态:数据处理时,受前置中间操作的影响
*                      distinct/sorted/limit/skip
* 5:终结操作/结束操作
*      需要注意:一个Stream对象,只能有一个终结操作,这个操作一旦发生,就会真实处理数据,生成对应数据。
*      终结操作:非短路操作:当前的Stream对象必须处理完集合中所有数据,才能得到处理结果。
*                  forEach/forEachOrdered/toArrav/reduce/collect/min/max/count/iterator
*              短路操作:当前的stream对象在处理过程中,一旦满足某个条件,就可以得到结果。
*                  anyMatch/allMatch/noneMatch/findFirst/findAny等
*                  Short-circuiting,无限大的stream->有限大的stream
*
*/



课程收获:

看看这记的东西,看看这记的,这只剩下记的东西了,因为脑子记不住,Lambda的Stream流对于初学者还是同样的不友好啊,什么迭代一类的,之前根本完全不知道,这才知道,还是继续整吧,其次,学这门课,必须手眼并动,手不仅得记,还得按暂定,跟着老师的原始速度就有点跟不上,更不要说开倍速了,开倍速就等于过家家了


加油吧,同志们!


https://img2.sycdn.imooc.com/63578926000167d617431039.jpg


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
6
获赞与收藏
5

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消