随笔分类 - 高效编程
高效 告别996,开启java高效编程之门 3-18本章总结
摘要:1 重点: 1.1 2.3,2.5,2.6,2.7 2 本章总结: 2.1 传统集合处理方式和lambda表达式对比 2.2 介绍了流的简介 2.3 流与集合的区别 2.4 流的组成:数据源,中间操作和终端操作 2.5 中间操作分为无状态和有状态,终端操作分为短路和非短路;以及他们的案例 2.6 流
阅读全文
高效 告别996,开启java高效编程之门 3-17实战案例预定义收集器
摘要:1 重点: 1.1 Collectors方法之 流转集合,分组,分区的案例应用 2 demo之流转集合(toCollectors): demo: /** * toList * 案例1:流转换为集合 * 注意:可以用Collectors.toList /toSet/ toMap 等转换成不同的集合 *
阅读全文
高效 告别996,开启java高效编程之门 3-16收集器与预定义收集器概述
摘要:1 重点: 1.1 collect /Collect /Collectors的区别 2 收集器概述: 2.1 收集器的作用:将流中的元素累积成一个结果 2.2 作用于终端操作collect上 2.3 collect/Collector/Collectors 的区别 collect是流收集的一个方法,
阅读全文
高效 告别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
阅读全文