java8新特性
文章平均质量分 57
Lou_Lan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Stream的reduce的使用
概述 reduce的意思的减少,缩小;但是这个方法的使用更像是流元素的累积操作,因为这个方法会将流中所有的元素经过累积操作之后返回。 在有一个重点,就是什么是累积操作?这个东西怎么解释呢,就是一个对象数据和流中的第一元素进行操作,然后返回,之后被返回的这个数据回和第二个流元素进行操作,然后返回,之后被返回的数据再和第三个流元素进行操作,然后返回,……,往复进行,直到最后一个元素,之后将操作后的数据返回给用户。这个就是累积操作。(这个属于个人理解,如果不适,请指正) 再strem类两种reduec原创 2021-10-09 11:31:28 · 24748 阅读 · 2 评论 -
Stream的collect时使用Collectors.toMap()出现 “Duplicate key xxx”
概述 先说明一下我使用这个方法的场景。我有一个User对象的list集合,需要提取其中的id作为map集合的key,name作为map集合value,(其实就是将所有user对象的id和name放到一个map集合中)具体如下:List<User> list = new ArrayList<>();// ... 此处省略向list集合中添加User对象Map<String,String> map = list.stream().collect(Collectors原创 2021-09-30 19:30:29 · 1975 阅读 · 0 评论 -
java8 Stream的flatMap的使用
一、概述 flatMap我个人感觉就是流转换,是将每个元素产生的新流的结果作为返回值。说白了就是降维打击,为什么这么说呢?因为我使用这个方法的时候只是将每个元素中的某些属性或者值重新整理到一个新的流中返回。如下:// 将map集合中的list数据提取组合成新的流(从二维变成了一维)Map<String, List<String>> map = new HashMap<>();Stream<String> stringStream = map.entr原创 2021-09-18 10:09:38 · 6084 阅读 · 1 评论 -
Java8 Stream的collect的使用
一、概述 在java8中我们基本上都会使用到stream,尤其是里面的并行流。使用流的时候就不可避免的会使用到collect(进行数据的收集,因为现在的数据都是流,需要收集转化为对象进行使用),stream里面有2个collect的方法,如下:collect(Collector<? super T,A,R> collector) collect(Supplier<R> supplier, BiConsumer<R,? super T> accumulator, B原创 2021-09-16 17:16:32 · 3073 阅读 · 0 评论 -
接口 Function
概述 Function也是函数式接口,funcation的中文意思是【方法,函数】,我们都知道在数学中函数就是有进有出。该接口也是,作为函数式接口也是有且只有一个抽象方法。该抽象方法接收一个泛型参数,返回一个泛型数据。接口详情1. apply 该抽象方法是接收一个参数,然后参数通过函数计算,返回一个结果数据。 /** * 通过给定参数应用函数 * * @param t 函数的入口参数 * @return 函数的结果 */ R ap原创 2020-08-04 09:40:15 · 497 阅读 · 0 评论 -
接口 Consumer
概述 这个也是一个函数式接口,consumer的中文意思是消费者的意思,就是消费的意思,也就是说这个接口的方法就是吃人不吐骨头的,也就是没有返回值的。接口详情1. accept 这个方法只是接收参数,然后进行消费,没有返回值。 /** * 通过给定的参数进行操作 * * @param t 输入参数 */ void accept(T t);2. andThen 这个方法是形成一个组合消费者,其实就是两个消费者先后执行而已,没啥大步了的原创 2020-08-04 09:39:43 · 322 阅读 · 0 评论 -
接口 Supplier
概述 这个也是一个函数式接口,Supplier的中文意思就是提供者,攻击者的意思,就是自己内部生产东西,然后提供给别的,也就是说它是没有输入的,只有输出。接口详情1. get 获取一个结果数据,很多时候都是用来获取对象的,在get方法体内构造对象。 /** * 获取一个结果 * * @return 一个结果数据 */ T get();...原创 2020-08-04 09:39:10 · 246 阅读 · 0 评论 -
接口Predicate
概述 predicate的中文意思有【表明,断言】,是对一个事务的判断,而我们说的这个Predicate是java8中的新特性接口。它主要是用于lambda表达式,用于判断,返回布尔类型的数据。我们这里主要是来说说它的各个方法的使用。接口详情1. test 这个方法是这个接口中唯一的抽象方法,函数式接口两种有且只有一个抽象方法(其它方法为有方法体的默认方法和静态方法)。 /** * 根据输入的参数预估这个断言 * * @param t 输入参数 *原创 2020-08-03 21:35:17 · 447 阅读 · 0 评论 -
java8关于interface的新特性
概述 java8被发布出来已经很长的一段时间了,但是一直没有关注过他的新特性。最近了解一下java8在inteface接口上的新特性。 在java8之前,接口interface是不许与有方法体的方法出现的,所有的方法是需要被实现的,但是java8之后可以使用关键字default和static在接口中定义有方法体的方法,分别为默认方法和静态方法。static方法 和想象中的一样,static方法就类似与普通的静态方法,也是通过类名方法名进行调用的。package org.loulan.stud原创 2020-06-30 11:42:40 · 530 阅读 · 0 评论
分享