![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java8
Angus博客
知足长乐,助人为乐,自得其乐。
展开
-
Java8新特性五:方法引用(双冒号 ::)
方法引用 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿什么参数做什么操作。那么考虑一种情况:如果我们在Lambda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再写重复逻辑? ...原创 2020-10-29 20:07:55 · 2548 阅读 · 4 评论 -
Java8新特性四:Stream流
Stream流 说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。 1.1 引言 传统集合的多步遍历代码几乎所有的集合(如Collection 接口或Map 接口等)都支持直接或间接的遍历操作。而当我们需要对集合中的元素进行操作的时候,除了必需的添加、删除、获取外,最典型的就是集合遍历。例如: package com.wsj.java原创 2020-10-26 20:52:56 · 706 阅读 · 0 评论 -
Java8新特性一:Lambda Expressions(Lambda 表达式)
Lambda介绍 Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。 Lambda表达式的结构 一个 Lambda 表达式可以有零个或多个参数 参数的类型既可以明确声明,也可以根据上下文来推断。例如:(int a)与(a)效果相同 所有参数需包含在圆括号内,参数之间用逗号相隔。例如:(a, b) 或 (i原创 2020-10-25 20:19:52 · 412 阅读 · 0 评论 -
Java8新特性二:Functional Interfaces(函数式接口,函数式编程)
1.函数式接口 1.1 概念 函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。 1.2 格式 只要确保接口中有且仅有一个抽象方法即可: 列子: package com.wsj.java8.functional; /** * @ClassName MyFunction原创 2020-10-25 20:20:41 · 846 阅读 · 0 评论 -
Java8新特性三:常用的函数式接口(Supplier,Consumer,Predicate,Function)
JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在java.util.function 包中被提供。下面是最简单的几个接口及使用示例。 Supplier接口 java.util.function.Supplier<T> 接口仅包含一个无参的方法: T get() 。用来获取一个泛型参数指定类型的对象数据。由于这是一个函数式接口,这也就意味着对应的Lambda表达式需要“对外提供”一个符合泛型类型的对象数据。 实例: 实战:求数组元素最大值 Con.原创 2020-10-26 20:06:35 · 1881 阅读 · 0 评论