Java8
琦彦
Find out who you are,and be that person.
展开
-
Java8 stream 中利用 groupingBy 进行多字段分组求和
Java8的groupingBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map对集合按照单个属性分组、分组计数、排序List<String> items = Arrays.asList("apple", "apple", "banana", "apple", "orange", "ba...原创 2020-01-16 15:49:19 · 33505 阅读 · 5 评论 -
java8之stream:处理集合数据
Streams lambda表达式允许我们在不创建新类的情况下传递行为,从而帮助我们写出干净简洁的代码。lambda表达式是一种简单的语法结构,它通过使用函数式接口来帮助开发者简单明了的传递意图。 Stream是java8引入的一个重度使用lambda表达式的API。Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高...转载 2017-04-18 08:27:41 · 26530 阅读 · 5 评论 -
Java8:20 个使用 Java CompletableFuture的例子
异步计算所谓异步调用其实就是实现一个可无需等待被调用函数的返回值而让操作继续运行的方法。在 Java 语言中,简单的讲就是另启一个线程来完成调用中的部分计算,使调用继续运行或返回,而不需要等待计算结果。但调用者仍需要取线程的计算结果。 JDK5新增了Future接口,用于描述一个异步计算的结果。虽然 Future 以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很不方便,只...翻译 2019-02-16 16:08:49 · 1591 阅读 · 0 评论 -
Java8:从匿名内部类到Lambda表达式&方法引用
匿名内部类、lambda和方法引用其实是相通的,从匿名内部类到lambda到方法引用是一个进化的过程,是一个简化的过程,更加是一个从抽象的过程。作用都是实现接口方法,换句话说就是实现接口;只是这个接口只有一个抽象方法。匿名内部类省去了实现类,直接new 接口名(){...} 没有实现类名,实际就是实现且创建了一个接口对象。匿名内部类也就是没有名字的内部类 正因为没有名字,所以...原创 2019-02-17 13:57:08 · 16209 阅读 · 4 评论 -
Java8 : Lambda 表达式
lambda表达式是java8给我们带来的几个重量级新特性之一,借用lambda表达式,可以让我们的java程序设计更加简洁。最近新的项目摒弃了1.6的版本,全面基于java8进行开发,本文将探讨行为参数化、lambda表达式,以及方法引用。 一. 行为参数化行为参数化简单的说就是函数的主体仅包含模板类通用代码,而一些会随着业务场景而变化的逻辑则以参数的形式传递到函数之中,采用行为...转载 2019-02-17 14:43:23 · 9331 阅读 · 0 评论 -
Java8 : Optional 类,优雅判定null
Optional不是对null关键字的一种替代,而是对于null判定提供了一种更加优雅的实现NullPointException可以说是所有java程序员都遇到过的一个异常,虽然java从设计之初就力图让程序员脱离指针的苦海,但是指针确实是实际存在的,而java设计者也只能是让指针在java语言中变得更加简单、易用,而不能完全的将其剔除,所以才有了我们日常所见到的关键字null。空指...转载 2019-02-17 14:49:20 · 26373 阅读 · 4 评论 -
Java8 :流式数据处理
java8的流式处理极大了简化我们对于集合、数组等结构的操作,让我们可以以函数式的思想去操作,本篇文章将探讨java8的流式数据处理的基本使用。一. 流式处理简介在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现。比如我们希望对一个包含整数的集合中筛选出所有的偶数,并将其封装成为一个...转载 2019-02-17 14:53:31 · 12954 阅读 · 2 评论 -
Java8 :默认接口方法
从java8开始,接口不只是一个只能声明方法的地方,我们还可以在声明方法时,给方法一个默认的实现,我们称之为默认接口方法,这样所有实现该接口的子类都可以持有该方法的默认实现。一. 引入默认接口方法的背景默认方法让我们能给我们的软件库的接口增加新的方法,并且能保证对使用这个接口的老版本代码的兼容性。java8可以看做是java版本更新迭代过程中变化最大的一个版本(与时俱进,方能不...转载 2019-02-17 14:56:09 · 9441 阅读 · 0 评论 -
Java8 和 Java 9中并发工具的改变
Java 8 和 Java 9中 concurrent包有了一些改变, 本文对这些改变做了汇总。Java 8 中 Concurrent package的改变java.util.concurrent中新的类和接口增加了两个新接口和4个新类:接口CompletableFuture.AsynchronousCompletionTask 接口CompletionStage ...转载 2019-02-19 09:54:27 · 557 阅读 · 0 评论