随笔分类 -  java8

iterate使用了parallel() 反而消耗了更多的时间
摘要:直接上代码: 结果: 使用了parallel() 反而消耗了更多的时间 原因:  iterate生成的是装箱的对象,必须拆箱成数字才能求和; 我们很难把iterate分成多个独立块来并行执行。 可以利用的解决方法: 留意装箱。自动装箱和拆箱操作会大大降低性能。Java 8中有原始类型流(Int 阅读全文
posted @ 2017-11-28 20:51 一个帅哥9527 阅读(303) 评论(0) 推荐(0)
Stream 分支/合并 框架的实际例子
摘要:请注意在实际应用时,使用多个ForkJoinPool是没有什么意义的。正是出于这个原因,一般来说把它实例化一次,然后把实例保存在静态字段中,使之成为单例,这样就可以在软件中任何部分方便地重用了。这里创建时用了其默认的无参数构造函数,这意味着想让线程池使用JVM能够使用的所有处理器。更确切地说,该构造 阅读全文
posted @ 2017-11-28 20:47 一个帅哥9527 阅读(620) 评论(0) 推荐(0)
区分Collection、Collector和collect Collectors类的静态工厂方法
摘要:工厂方法 返回类型 用 于toList List<T> 把流中所有项目收集到一个List使用示例:List<Dish> dishes = menuStream.collect(toList());toSet Set<T> 把流中所有项目收集到一个Set,删除重复项使用示例:Set<Dish> dis 阅读全文
posted @ 2017-11-28 17:33 一个帅哥9527 阅读(2580) 评论(0) 推荐(0)
Optional<T> 避免和null检查相关的bug
摘要:Optional<T>类(java.util.Optional)是一个容器类,代表一个值存在或不存在。在上面的代码中,findAny可能什么元素都没找到。Java 8的库设计人员引入了Optional<T>,这样就不用返回众所周知容易出问题的null了。我们在这里不会详细讨论Optional,因为第 阅读全文
posted @ 2017-11-27 17:35 一个帅哥9527 阅读(157) 评论(0) 推荐(0)
筛选、切片、匹配、查找、匹配、归约
摘要:筛选: numbers.stream().filter(i -> i % 2 == 0).distinct().forEach(System.out::println); 延伸:可以去掉distinct(),改用toSet()可以去掉distinct(),改用toSet() transactions 阅读全文
posted @ 2017-11-27 17:02 一个帅哥9527 阅读(192) 评论(0) 推荐(0)
java8 流 中的常用函数式接口
摘要:函数式接口 函数描述符 原始类型特化Predicate<T> T->boolean IntPredicate,LongPredicate, DoublePredicateConsumer<T> T->void IntConsumer,LongConsumer, DoubleConsumerFunct 阅读全文
posted @ 2017-11-27 14:07 一个帅哥9527 阅读(677) 评论(0) 推荐(0)
java8 流
摘要:实现:赛选苹果 基类 方法类: 知识点: 如上图,接口类,可以写default 开头的方法,此方法可以直接写实现,而且,子类不用集成此方法 阅读全文
posted @ 2017-11-15 18:13 一个帅哥9527 阅读(162) 评论(0) 推荐(0)