04 2020 档案
高效 告别996,开启java高效编程之门 3-15实战:流的构建四种形式
摘要:1 重点 1.1 流的构建的四种方式 2 Demo之由数值构建流 demo: @Test /** * 1 由数值直接构建流 * 问题:为什么可以用System.out::println ? */ public void streamFromValue(){ Stream stream = Strea
阅读全文
高效 告别996,开启java高效编程之门 3-14常用操作总结与流构建描述
摘要:1 重点 1.1 常用终端操作总结: 1.2 流构建描述 2 常用终端操作总结: 短路型: 匹配:anymatch allMatch noneMatch 查找:findFirst findAny 非短路型:Max Min Count 3 流构建描述: 3.1 由值生成流 3.2 由数组创建流 3.3
阅读全文
高效 告别996,开启java高效编程之门 3-13实战:常用终端操作之最大/最小/计数
摘要:1 重点 1.1 max,min,count 方法 最大/最小/计数 2 Demo之Max demo: @Test public void maxTest(){ OptionalDouble optional = list.stream().mapToDouble(sku->sku.getTotal
阅读全文
高效 告别996,开启java高效编程之门 3-12实战:常用终端操作之查找
摘要:1 重点 1.1 findFirst,findAny方法使用 1.2 sequential(串行),parallel(并行)方法使用 1.3 iterate,reduce方法的使用 1.4 串行,并行的区别(详情见2) 1.5 findFirst,findAny方法的区别(详情见2) 1.6 red
阅读全文
高效 告别996,开启java高效编程之门 3-11实战:常用终端操作之匹配
摘要:1 重点 1.1 3个demo的使用 1.2 anyMatch 中关于 大于n元打印的实际应用场景 2 Demo之anyMatch: demo: /** * anyMatch 有任一满足的,则停止继续操作,短路操作 * 需求:如果商品中有任一 大于 n 元的则,打印查出来该商品名称,否则,返回fal
阅读全文
高效 告别996,开启java高效编程之门 3-10实战:常用中间操作总结
摘要:1 重点 对3-7到3-9的总结 2 案例中间操作总结: 无状态操作: a filter 过滤 过滤书籍类产品 b map将一个元素转化成另一个元素 c flatMap将一个对象转化成一个流,字符计数 d peek对流元素进行遍历操作 有状态操作: a sort 对流中元素进行排序,可指定排序规则
阅读全文
高效 告别996,开启java高效编程之门 3-9实战:常用中间操作演示之:去重/跳过/截断
摘要:1 重点 去重,跳过,截断 动态分页 实战演示之 取商品的名称和总价打印:(stream流转化成list的方法)(打印两个属性) 2 实战演示之去重(distinct): @Test /** * distinct 去重 * 打印Sku的目录分类 */ public void distinctTest
阅读全文
高效 告别996,开启java高效编程之门 3-8实战:常用中间操作演示之:遍历/排序
摘要:1 重点 peek方法的使用 sorted方法的使用 reversed方法的使用 peek案例(无状态中间操作与forEach结合使用) 和 sorted案例(有状态中间操作与forEach结合使用)打印日志的区别 2 实战演示之peek: package com.imooc.zhangxiaoxi
阅读全文
高效 告别996,开启java高效编程之门 3-7实战:常用中间操作演示之:过滤/映射/扁平化 filter/map/flatMap
摘要:1 重点 filter方法的使用 map方法的使用 flatMap方法的使用 forEach方法的使用 2 map和flatMap的区别: map的作用很容易理解就是对rdd之中的元素进行逐一进行函数操作映射为另外一个rdd。 flatMap的操作是将函数应用于rdd之中的每一个元素,将返回的迭代器
阅读全文
高效 告别996,开启java高效编程之门 3-6流操作分类
摘要:1 重点 理解流程操作分类 常用的方法 2 Stream流操作分类: 2.1 流操作分类之中间操作(Intermediate): 无状态操作——filter/map/peek等有状态操作——dictinct/sorted/limit等 2.2 流操作分类之终端操作(Termina1):非短路操作——
阅读全文
高效 告别996,开启java高效编程之门 3-5 Stream流概念解析
摘要:3-4讲的没有意义,直接过了 1 重点 概念解析中的定义 Stream流的组成 Stream流和集合的区别 2 概念解析 定义: 从支持数据处理操作的源生成的元素序列。 解释: 元素序列:和集合一样,流也是一个接口,可以访问特定元素类型的一组有序值,有序值就是元素序列 源:为流提供数据的源头,比如集
阅读全文
高效 告别996,开启java高效编程之门 问题
摘要:1 第二节 lambda 表达式应用范围是什么? 什么时候 用它 是哪些方法调用吗?是集合调用吗?还是 所有的方法调用呢?调用的条件是什么呢?每次都开一个新的线程吗?还是单单为了与流一起应用?函数式编程只是试试水?
阅读全文
高效 告别996,开启java高效编程之门 3-3实战:利用Lambda+Stream处理业务逻辑
摘要:1 重点 1.1 本节目的 仅仅为了展示Stream流操作集合的便利性,看看demo就好,后边他大爷的还继续讲。 1.2 对以下方法的应用(这是本人对留的方法的理解,有不对的地方,欢迎大家指正) Stream.peek: 对流的操作,不操作流,不执行 Returns a stream consist
阅读全文
高效 告别996,开启java高效编程之门 3-2传统方式处理业务逻辑
摘要:1 重点 1.1 对sort方法使用的理解 2 代码演练 需求: 根据第一章需求,女盆友提出需求* 1 打印所有商品* 2 图书类的商品一定给买* 3 最贵的买两件* 4 打印最贵的两件商品的名称和总价 测试类: package com.imooc.zhangxiaoxi.stream; impor
阅读全文
高效 告别996,开启java高效编程之门 3-1流式编程开场与案例场景概述
摘要:1 使用场景 对集合数组处理的各种场景 2 案例 选用第2章,购物车案例,通过3-2 原始方法对集合的处理和3-3 Stream流的处理。感受差异
阅读全文
高效 告别996,开启java高效编程之门 2-15方法引用精讲
摘要:2-14课程和2-12重复了,所以没有发出来 1 方法引用使用条件 判断方法引用 是否满足场景的要求的时候,只需要看我们的出参和入参是否满足接口的要求即可 2 方法引用场景 四种方法引用类型: 指向静态方法 Class::staticMethod指向现有对象的实例方法 object::instanc
阅读全文
高效 告别996,开启java高效编程之门 2-12方法引用
摘要:1 有用部分 3 方法引用3种方法 4 如何区分静态方法引用还是任意类型实例方法引用? 2 方法引用简介 调用特定方法的Lambda表达式的一种快捷写法,可以让你重复使用现有的方法定义,并像Lambda表达式一样传递他们。 3 方法引用3种方法 3.1 指向静态方法的方法引用: 3.2 指向任意类型
阅读全文
高效 告别996,开启java高效编程之门 2-11常用函数接口及使用
摘要:1 有用部分 2 常用函数列表 demo1 方法和总结 demo2 方法 demo3优点: 函数式编程的优点是什么?为什么要使用函数式编程? 2 常用函数列表 接口 |参数 |返回类型 |描述Predicate<T> T |boolean |用于判别一个对象。比如求一个人是否为男性 Consumer
阅读全文
高效 告别996,开启java高效编程之门 2-10实战:自定义函数式接口
摘要:1 有用部分 2 代码演练 1 有用部分 个人理解: 1.1 关于lambda的应用 通过 @FunctionalInterface注解 将其参数 fileContent 注入,调用的时候可以直接调取到。 服务层通过直接调用接口的方法,没有用实现类 1.2 关于文件流的读取操作 demo中设计更多的
阅读全文
高效 告别996,开启java高效编程之门 2-9实战:Lambda表达式
摘要:0 有用部分 1 函数式编程简介 2 函数式编程和lambda的关系 3 lambda表达式应用范围 4 lambda应用的五个案例 5 函数式编程应用条件 6 提出问题 0 有用部分 4 lambda应用的五个案例 5 函数式编程应用条件 6 提出问题 本节主要介绍了lambda的使用方式,具体d
阅读全文
高效 告别996,开启java高效编程之门 2-8实战:判断逻辑参数化-Lambda表达式
摘要:1.1 重点 1.2 代码编程 1.1 重点 注意:jdk8已上才能用lambda表达式 本节简单介绍了lambda表达式的使用,具体的使用案例参照2-15 使用了lambda表达式,请参考测试类 VerSionTestF 核心思想:把函数作为参数传递给另一个函数 1.2 代码编程 商品实体类:(同
阅读全文
高效 告别996,开启java高效编程之门 2-7实战:判断逻辑参数化-匿名类
摘要:1.1 重点 1.2 代码编程 1.1 重点 1 使用了匿名内部类,但是关于内存泄漏风险的解决一直没有明显的方案,这个后边小喜老师 会@我的,持续关注下即可 2 Lambda是不会引起内存泄漏的。原因就是从底层屏蔽掉了由于内部类持有外部对象所造成的内存泄漏问题。放心大胆的用就好了。 关于匿名类内存泄
阅读全文
高效 告别996,开启java高效编程之门 2-6实战:判断逻辑参数化-实体类
摘要:1.1 重点 1.2 代码编程 1.1 重点 一种新的思维方式:可以看看 demo(Predicate谓词接口,不建议大批量使用这种方法,容易类爆炸) 1.2 代码编程 需求: 传入任一参数 ,可以得到相应的查询结果(编程中只写了 商品种类和总价,其他的要加的话,直接扩展谓词接口实现类即可) 商品实
阅读全文
高效 告别996,开启java高效编程之门 2-5实战:多维度条件参数化
摘要:1.1 重点 1.2 代码编程 1.1 重点 一种新的思维方式:可以看看 demo(一个方法 可以 根据两个参数 任一参数判断) 1.2 代码编程 需求: 一个方法 可以 根据两个参数 任一参数判断, 商品实体类:(同2-3) 商品服务类:(看filterSkuListByParamB方法) pac
阅读全文