![](https://img-blog.csdnimg.cn/20200902050141934.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java8新特性
文章平均质量分 68
java8的新特性
诗水人间
要想走的更远,就需要思考更深层次的问题。冷静、智慧、深沉是我所向往的
展开
-
java8 Stream接口的深入解读,stream接口内部的方法你都熟悉吗?
Stream接口中每一个方法你都了解?java8已经诞生很久了,stream-api 你是否已经非常的精通了?了解 Stream-api 的前提需要熟悉常见函数式接口,对于每一个方法你是否有深入的解读过?本篇文章主要目的是解读这个接口的每一个方法以及对应的应用场景。跳过流的创建,重点讲解每一个方法的功能和应用场景。stream用的最多的场景就是从数据库查询得到List数据,可能这些数据需要经过一些处理才可以暴露给前端。其目的也是为了避免写复杂的SQL语句,很早以前的在没有持久层框架的开发,sq原创 2021-09-20 01:10:38 · 1522 阅读 · 4 评论 -
java8新特性---大总结--建议收藏、点赞、加关注!!!
1、Lambda表达式------也叫做 函数式编程Lambda是一个匿名函数,可以理解为一段可以(像数据一样)传递的代码。可以使代码更简介更灵活使用lambda表达式有4个知识点第一个、lambda表达式的格式()->{},只有函数式接口才能使用这种格式函数式接口接口只能有一个抽象方法、可以有多个default和static方法这样的接口才能算是函数式接口接口中只有一个抽象方法声明,例如Runnable接口,可以使用lambda表达式使用方式 ()->{}new Thread((原创 2020-07-12 05:04:49 · 133341 阅读 · 1 评论 -
如何更优雅的使用 Java8 进行分组(尤其是多个字段的组合分组)。
在SQL中经常会用到分组,我们也常常遇到一些组合分组的场景。有下面的一个User类。原创 2022-07-17 07:53:01 · 12246 阅读 · 2 评论 -
深入解读Collectors集合收集器
Collectors 要和 Stream-API 结合起来才能起到效果前置文章推荐:建议先掌握 stream api 后再来看《java8 Stream接口的深入解读,stream接口内部的方法你都熟悉吗?》Collectors 是java.util.stream下的工具类因此Collectors的主要用途是收集stream中的元素。常用的方法有toList()、toSet()toMap(Function, Function)toMap(Function, Function, Binary原创 2021-09-21 15:50:18 · 1203 阅读 · 0 评论 -
java8使用stream Api实现List 转Map
推荐内容:《java8新特性—大总结》这篇文章介绍的是整个java8的新特性的主要特性不管看了多少篇文章,最终的目的都是为了掌握和应用java8的新特性,帮助我们写代码更加的简洁高效。《java8 Stream接口的深入解读》 专门解读Stream接口的接口《使用java8的Stream统计字符串数组中每一个字符出现的次数》 java8的一个小案例,使用Stream统计字符串数组每一个字符的个数更多关于java8的内容可以关注我的专栏《java8新特性》List 转 Map示例代码如下原原创 2021-09-20 23:34:45 · 461 阅读 · 0 评论 -
策略模式的妙用(java8中 lambda表达式的灵活使用)
如果你还不熟悉java8的新特性,可以看下下面这篇文章 或者 B站红康师傅讲解的java8新特性,宋红康老师讲的不止有java8哦,乃至java 9-15的新特性都有,可以在B站中找到,或者尚硅谷官网可以免费获取到。 《B站尚硅谷官方运营号地址》想要了解四大类型(Consumer、Supplier、Predicate、Funtion)接口的看下前置文章: java8新特性—大总结–建议收藏、点赞、加关注!!!如果此前已经掌握了java8的新特性,至少lambda表达式是没啥大问题的。请听题原创 2020-12-07 11:11:59 · 25972 阅读 · 20 评论 -
使用java8的Stream统计字符串数组中每一个字符出现的次数
题目:有一个字符串数组["Hello world", "I am tom", "how are you!"],要求统计每一个字符出现的次数实现的方式有很多种,可以考虑HashMap如果key重复则计数加一。比较简单就不写这种方式如果使用java8的stream来完成这道题,我们可以先将字符串数组转换为字符流,然后进行分组即可完成任务,代码如下:Stream的方式实现统计import java.util.ArrayList;import java.util.stream.Collectors;im原创 2021-02-07 21:24:04 · 5135 阅读 · 2 评论 -
CompletableFuture中方法的各种(多任务并发场景)使用案例----详解
一、简单介绍CompletableFuture是java8新增的并发工具类,继承了FutureTask的同步任务的特点,同时新增了异步调用的特点(其中异步的方法名称都带有Async),换而言之同步获取方法的返回值的方式可以用CompletableFuture完成,与此同时,想要异步获取方法的返回值也可以使用CompletableFuture来完成。异步带Async,并且底层执行的线程由ForkJoinPool支持。于此同时还多了异常处理(执行任务的时候可能会发生异常,以前使用FutureTask的同步原创 2020-08-14 16:13:56 · 129166 阅读 · 3 评论 -
java8新特性------StreamApi
什么是Stream?stream是数据的渠道,用于操作数据源(集合、数组等)所生成的元素序列。区别在于 集合操作的是数据,而流是进行计算Stream特点Stream 不会自己存储元素 Stream 不会改变源对象,会返回一个带结果的 新的Stream Stream 操作是延迟执行的。意味着Stream要等到结果的时候才会执行Stream的使用一、...原创 2019-11-08 14:10:27 · 150561 阅读 · 0 评论 -
java8新特性------数组引用
格式:type[]::new举例:Function<Integer,Integer[]> fun = n -> new Integer[n];等同于Function<Integer,Integer[]> fun=Integer[]::new;原创 2019-11-08 11:35:20 · 148480 阅读 · 0 评论 -
java8新特性------构造器引用和方法引用
格式 ClassName::new举例Function <Integer,MyClass> fun= n->new MyClass(n);等同于Function<Integer,MyClass> fun=MyClass::new;原创 2019-11-08 11:33:02 · 132603 阅读 · 0 评论 -
java8新特性------内置四大核心函数式接口
T 和 R 都是传进去的范型 由用户自定义传参函数式接口类 参数类型 返回类型 用途 Consumer<T> 消费型接口 T 没有返回值 对类型为T的对象应用操作 包含方法 void accept(T t) Supplier<T> 供...原创 2019-11-08 11:26:15 · 133172 阅读 · 0 评论 -
java8新特性------Lambda表达式
上面是Lambda?Lambda是一个 匿名函数,Lambda表达式是一段可以传递的代码能做什么?可以写出更简洁、更灵活的代码。使java语言表达能力得到 提升。特性:在Lambda表达式中不需要指定类型 无参、无返回值,Lambda体只需一条语句 例如:Runnable run1=()-> System.out.println("hello world!");...原创 2019-11-07 23:41:03 · 139279 阅读 · 0 评论 -
java8新特性------速度更快
例如HashMap以前用的是Hash表(哈希算法)存储数据Hash表实质上是数组,默认的长度是16。jdk1.8以前:以前的HashMap存储是通过HashMap存储的(数组+链表) 现假设有一个对象需要存储在HashMap中,首先这个对象会被Hash算法运算获得一个hash值,然后存储在数组中,下标就是得到的Hash值。当有新对象存储时同样通过hash算法运算...原创 2019-11-07 20:32:33 · 148936 阅读 · 0 评论