jdk1.8
袁志斌jack
这个作者很懒,什么都没留下…
展开
-
stream并行自定义分割器spliterator
一、jdk1.8流实现并行是很简单的,只要在流上加parallel()方法。这个方法的并行原理是使用了fork/join递归的方式进,我们在开发中使用并行时,最关注的一个问题是共享变量。一种常用的方式是每次在使用时克隆这个变量,通过修改克隆变量而不影响原变量的方式,达到已占用更多的内存换取性能。当然这里不是我要讨论的,本次要讲的流并行时,如何分割数据或者说是任务。 1、我们做一个简单的字符串的单词...原创 2019-10-24 23:19:28 · 624 阅读 · 0 评论 -
fork/join分支/合并使用
一、jdk1.7增加了fork/join分支/合并做递归并行。jdk1.8中流的并行就是基于此。递归并行的方式是:一分二,二分四,四分八,当分到八个任务时,发现这八个任务都不能再分了,这八个任务就并行顺序执行,把执行的结果再一层层递归合并,从而得到最终结果,实现并行。下面直接上代码: 以上是一个求和并行的代码。 ...原创 2019-10-23 20:48:33 · 510 阅读 · 0 评论 -
自定义收集器Collector
一、自定义收集器,有时候Collectors类的收集器不能满足需求,需要我们自定义收集器,下面我们来自定义一个收集器,首先我们看Collector接口有哪些方法:supplier()、accumulator()、combiner()、finisher()、characteristics()。从方法大概也知道每个方法的作用。收集器的作用是做一些归约操作。 1、supplier()返回一个Suppli...原创 2019-10-23 19:45:48 · 333 阅读 · 0 评论 -
jdk1.8的lambda表达式与方法引用的基本用法
一、List排序 1、java8的API已经为List提供了一个可用的sort方法; void sort(Comparator<? super E> c); 我们用一个苹果类来说明,一般的写法是这样: 我们使用匿名类来处理一下: 因为Comparator是一个函数式接口(函数式接口是指接口类中只一个抽象方法,允许有多个默认方法),则可以使用lambda表达式。 而Comparat...原创 2019-09-24 20:30:43 · 440 阅读 · 0 评论