
java8
大鹏小站
一个快乐敲代码的程序猿
展开
-
Java8 stream 中利用 groupingBy 进行多字段分组求和
Stream 作为 Java 8 的一大亮点,好比一个高级的迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返。Java 8 中的 Streams API 详解我们可以利用stream对数据进行分组并求和。示例如下:List<String> items = Arrays.asList("apple", "apple", "banana", "apple", "orange",原创 2020-06-17 09:10:52 · 29162 阅读 · 2 评论 -
Java8 总结
过年期间在家里陆陆续续把张龙的Java8看了一遍,老师讲解的非常好,简洁易懂,今天做一个总结深入理解 Java8+jdk8 源码级思想 (完)参考文章:Java8JAVA8新特性...原创 2020-03-11 22:08:25 · 194 阅读 · 2 评论 -
Java8 时间类
1、介绍在Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型,SimpleDateFormat非线程安全等问题。故此,Java8引入了一套全新的日期时间处理API,新的API基于ISO标准日历系统。2、名词时间戳(时刻):时间戳是指格林尼治时间1970年01月01日00时00分00秒到现在的总秒数(毫秒数),可以理解成绝对时间,它与时区无关,不同时区...原创 2020-03-07 11:41:53 · 757 阅读 · 2 评论 -
Java8 collectors类
先看下collectors类的结构,里面有collector接口的实现 CollectorImpl以及自己定义的一些静态方法构造对象@Data @AllArgsConstructor static class Achievement{ private String name; private double score; priv...原创 2020-02-17 20:10:12 · 588 阅读 · 0 评论 -
Java8 stream流的一些感悟
流 分中间操作 终止操作 如果没有终止操作 中间操作不执行Collectors.joining("/")flatMap() 将所有的流打平了 打成一个流Stream<List> stream = Stream.of(Arrays.asList(1),Arrays.asList(2,3),Arrays.asList(4,5,6));stream.flatMap(list->...原创 2020-02-08 21:07:37 · 667 阅读 · 0 评论 -
Java8之默认方法
1、为什么要有默认方法在 java 8 之前,接口与其实现类之间的 耦合度 太高了(tightly coupled),当需要为一个接口添加方法时,所有的实现类都必须随之修改。默认方法解决了这个问题,它可以为接口添加新的方法,而不会破坏已有的接口的实现。例如,Java8的List接口新增了sort方法。在Java8之前,则每个实现了List接口的类必须定义sort方法的实现,或者从父类中继承它的...原创 2020-01-30 19:41:17 · 297 阅读 · 0 评论 -
Java8之方法引用
一、什么是方法引用在Lambda表达式中,将其划分了几块。这一行就是lambda表达式。() -> System.out.println(“使用Lambda表达式”);下面我们对lambda的格式进行一个介绍:(1)左边括号:lambda的形参列表,就好比是我们定义一个接口,里面有一个抽象方法,这个抽象方法的形参列表。(2)箭头:lambda的操作符,所以你看见这个箭头心中知道这是一个...原创 2020-01-30 19:05:49 · 275 阅读 · 0 评论 -
Java8 函数式接口@FunctionalInterface
什么是函数式接口所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法。这种类型的接口也称为SAM接口,即Single Abstract Method interfaces特点接口有且仅有一个抽象方法允许定义静态方法允许定义默认方法允许java.lang.Object中的public方法该注解不是必须的,如果一个接口符合"函数式接口"定义,那么加不加该注解都...原创 2020-01-27 22:17:57 · 258 阅读 · 0 评论 -
Java8之collectors 接口
java8中的stream操作,分为中间操作和终端操作,这篇主要是也说的归约操作的方式collect,收集器操作,可以当做是一种更高级的归约操作;先看下stream中的collect操作 <R> R collect(Supplier<R> supplier,BiConsumer<R, ? super T> accumulator,BiConsumer<...原创 2019-10-24 16:33:50 · 386 阅读 · 0 评论 -
Java8之Predicate接口
Predicate的源码跟Function的很像,我们可以对比这两个来分析下。直接上Predicate的源码:public interface Predicate<T> { /** * Evaluates this predicate on the given argument. */ boolean test(T t); /** ...原创 2019-10-14 14:42:19 · 256 阅读 · 0 评论 -
Java8之Function接口
Java8 添加了一个新的特性Function,是一个函数式接口所有标注了@FunctionalInterface注解的接口都是函数式接口,具体来说,所有标注了该注解的接口都将能用在lambda表达式上。先看源码@FunctionalInterfacepublic interface Function<T, R> { R apply(T t); /** ...原创 2019-10-14 11:37:51 · 15971 阅读 · 0 评论 -
Java类 lombok、swagger、jackjson、JPA 注解详细解读
最近在项目里面用了很多注解,今天总结一下1、lombok包里面的 可以节省很多get set代码@Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法@Getter/@Setter : 注解在类上, 为类提供读写属性@ToString : 注解在类上, 为类提供 toString() 方法@Slf4j : 注...原创 2019-08-20 18:50:30 · 621 阅读 · 0 评论 -
Java 8 Optional的使用
今天项目里面报了null错误,用Java8中的Optional解决处理一下,记录一下Optional是java 8引入的用于代替null的一个工具类,目的是为了改善代码的可读性,同时减少烦人的NullPointException。3.1、创建Optional对象3.1.1、Optional.empty创建一个空的Optional对象。3.1.2、Optional.of创建一个非空的Op...原创 2019-07-25 18:04:08 · 458 阅读 · 0 评论 -
Java8新特性之stream、map和reduce
Java8新了stream API,需要注意的是Stream和I/O中的流是没有关系的,这个stream主要是要来处理集合数据的,可以将其看作一个高级迭代器。在Collection接口中新增了非抽象的stream方法来获取集合的流。另外,Java8中新增了一个Optional类用于处理空指针异常,该类位于java.util包下,使用这个类可以更好的支持函数式编程,并且可以简化以前对n...原创 2019-05-14 11:58:55 · 17904 阅读 · 0 评论 -
for-forEach-stream.forEach三种遍历方法
java8新出的循环方式,在网上有大量的道友说用流的方式效率反而更低了。大量的结论表明,这种方式只是语法糖(for-forEach-stream三种遍历方法执行效率比较与选用思考 - ZZY1078689276的专栏 - 优快云博客https://blog.youkuaiyun.com/ZZY1078689276/article/details/79430772)这篇文章一样的内容看了不止一次,我都不...转载 2019-05-14 11:47:57 · 21297 阅读 · 2 评论 -
Stream Java8的集合类利器——走进Java Lambda(二)
通过前面的例子,相信你已经对Lambda表达式有了一个初步了解了,前一篇主要是属性Lambda的语法,这篇我们继续。 Java8做了很多改进,以便我们少写点代码。接下来我们就来稍微了解一下,JDK自带的库文件中的一些简便工具吧。在本系列第〇篇,我就以一段“滑稽”的代码开头。说,在集合里面经常会做这种“滑稽”的处理。幸运的是,Java8给集合类提供了新技能,解决这个问题,新技能是S转载 2018-03-29 17:14:43 · 306 阅读 · 0 评论 -
从Java5基础开始初识Lambda表达式——走进Java Lambda(一)
从Java5开始初识Lambda表达式 Lambda表示式是Java8的特性,对于如何安装Java8,装哪个版本的什么IDE,可以支持Java8语法,这里就恕不介绍了。请你确认安装了环境再往下看,真的,谢谢你。 我们知道在Java里面,所有参数都有一个类型。那么Lambda表达式里面,参数是什么呢,上一篇说了Lambda是函数编程,所以Lambd转载 2018-03-29 17:11:13 · 364 阅读 · 0 评论