
Java8新专题
巴黎没有欧莱雅你也不值得被拥有
发现自己近来好懒,好久没沉淀芝士了
展开
-
结论:Stream能用parallel()就别放过
结论:Stream能用parallel()就别放过 ps:请读者自己学习研究在哪些场景下可以用parallel,推荐书籍《Java8实战》 验证1: 手动塞数据和使用Stream的collect收集区别(差别不大)验证2: 使用Stream的parallel(),效率提高了50%左右测试案例,可自取验证 public static void main(String[] args) { List<Integer> list...原创 2020-09-28 14:27:21 · 2461 阅读 · 2 评论 -
结论:能用Stream就不要用For循环
结论:能用Stream的就不要用For循环通过测试: Stram流比For循环处理速度稍快一些(2-3s不等)案例如下: public static void main(String[] args) { List<Integer> list = new ArrayList<>(); IntStream.range(0, 10000000).boxed() .forEach(i -> list.原创 2020-09-28 14:10:20 · 1196 阅读 · 0 评论 -
多线程模版案例(可提供平常学习、业务使用)
1、相关内容关键字(不熟悉的可自行学习,Java8Stram流的可以替换为for循环) ExecutorService、FixedThreadPool CountDownLatch(可暂时不关注) AtomicLong Java8 Stream流2、案例如下(已加入详细备注):public static void main(String[] args) throws InterruptedException { // 目前有...原创 2020-09-28 11:32:00 · 199 阅读 · 0 评论 -
Stream流切割N个List
public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7); int limit = countStep(list.size()); //方法一:使用流遍历操作 List<List<Integer>> mglist = new ArrayList<>(); Stream.iterate(.原创 2020-09-25 18:59:54 · 2278 阅读 · 0 评论 -
Java8专题总结
1. 我的收获在工作中,能够更熟练使用Stream流 了解了并行处理的原理 增加我对JDK8学习了解的自信2. 和以前的不同认识的多了。之前只是知道个别几个常用的方法,比如filter、map、foreach和collect,知道少,使用就有一定的局限性。现在我能很自然的使用stram流进行开发工作。 了解的多了。之前只知道能用并行流处理,就用并行流处理,比如parallel...原创 2019-10-29 21:52:10 · 230 阅读 · 0 评论 -
Java8专题七《函数式编程小结》
背景:在实现和维护一个系统中,我们首先会去看这个程序是否具有良好的结构(耦合度和内聚性),因为良好的结构便于我们理解。除此以外,我们最关心的就是在日常工作中对代码进行维护时的调试,因为代码遭遇一些无法预期的值就有可能发生崩溃。我们接下来的工作无非就是去寻找导致这个问题的原因了->为什么会发生这种情况?他是怎么进入这种状态的?1、函数式编程是什么?它是一种使用函数...原创 2019-10-07 21:35:33 · 243 阅读 · 0 评论 -
Java8专题六《用流收集数据》
本章节一共有两个部门1、讲解大概14个Collectors类的静态工厂方法的用法2、简单的讲解收集器接口1. 收集器简介collect() 接收一个类型为 Collector 的参数,这个参数决定了如何把流中的元素聚合到其它数据结构中。Collectors 类包含了大量常用收集器的工厂方法,toList() 和 toSet() 就是其中最常见的两个,除了它们还有很多收集器,用...原创 2019-09-29 21:52:55 · 225 阅读 · 0 评论 -
Java8专题五(下)《使用流》
目录1、 数值流1.1原始类型流化1.2转换回对象流1.3默认值OptionalInt1.4数值范围2、 构建流2.1由值创建流2.2由数组创建流2.3由文件生成流2.4 由函数生成流:创建无限流3、小结1、 数值流我们在前面看到了可以使用reduce方法计算流中的元素的总和。例如://暗含的装箱成本int calor...原创 2019-09-22 20:21:29 · 169 阅读 · 0 评论 -
Java8专题五(上)《使用流》
目录1、筛选与切片2、映射3、排序4、查找与匹配5、简介Optional6、归约6.1 最大值,最小值1、筛选与切片筛选与切片 方法 描述 filter 接收 Lambda , 从流中排除某些元素。 limit 截断流,使其元素不超过给定数量。 skip 跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素不足 n 个,...原创 2019-09-22 20:00:14 · 177 阅读 · 0 评论 -
Java8专题四《引入流》
目录1、什么是流?2、使用流的好处3、集合和流4、流操作的分类4.1中间操作4.2 终端操作4.3 使用流的步骤5、 小结1、什么是流?流是JavaAPI的新成员,你可以把它们看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码!我们会在后面的章节详细解释流和并行化是怎么工作的。2、使用流的好处用一个例子展示流...原创 2019-09-22 19:18:56 · 160 阅读 · 0 评论 -
Java8专题三(下)《Lambda表达式-复合Lambda表达式》
目录1、复合Lambda表达式的有用方法1)比较器复合2)谓词复合3)函数复合2、小结1、复合Lambda表达式的有用方法Java8的好几个函数式接口都有为方便而设计的方法。比如用于传递Lambda表达式Comparator、Function和Predicate都提供了允许你进行复合的方法。比如,你可以让两个谓词之间做个or操作,组合成一个更大的谓词,你还可以让一个函数...原创 2019-09-22 18:53:57 · 328 阅读 · 0 评论 -
Java8专题三(上)《Lambda表达式》
目录1、Lambda是什么?2、Lambda表达式组成部分是什么?3、为什么要用以及在哪里可以使用Lambda?4、函数式接口5、 方法引用1、Lambda是什么?可以把Lambda表达式理解为简洁的表示可传递的匿名函数的一种方式:它没有名称,但有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。2、Lambda表达式组成部分是什么?Lam...原创 2019-09-22 18:45:24 · 208 阅读 · 0 评论 -
Java8专题二《通过行为参数化传递代码》
Java8提出了三个新概念:流处理、行为参数化、并行处理。目录什么是行为参数化? 行为参数化的好处是什么? 应对不断变化的需求的案例1. 什么是行为参数化?行为是一个动词,指的是举止动作;参数是个名称,是一个变量;将一个“举止动作”作为参数,传递给方法。那么行为参数化就是一个方法接受多个不同的行为作为参数,并在内部使用它们,完成不同的行为能力。2. 行为参数化的好处是...原创 2019-09-22 17:56:46 · 129 阅读 · 0 评论 -
Java8专题一《为什么要学习Java8?》
背景:leader要求每人选一个专题给大家做分享,一位同学由于业务上要使用okhttp,所以他选择分享的课题就是okHttp。思考了一周后的我就决定选择Java8作为分享专题。目录为什么选择Java8作为此次的分享专题呢? Java8都有哪些新特性? 整体学习进阶流程 讲解方式1. 为什么选择Java8作为此次的分享专题呢?第一点是在我实习期间,项目中很多地方都用了...原创 2019-09-22 17:04:16 · 310 阅读 · 0 评论