java8入门

Lambda表达式

Lambda 表达式是 Java 8 的新特性,Lambda 表达式可以代替一部分的匿名内部类,让表达式变得更加简介。

Lambda表达式语法
(parameters) -> expression 或 (parameters) -> { statements; }
paramaters:类似于方法的形参列表,这里指的是函数式接口中抽象方法的参数。参数的类型即可以声明也可以省略,如果只有一个参数,括号也可以省略
->:类似于 JavaScript 中的箭头函数
方法体:函数式接口中抽象方法的实现。如果方法体只有一个语句,大括号是可以省略
因为lambda表达式相当于匿名内部类,所以对于外部变量,虽然没有强制使用final修饰,但是必须不可被后面的代码修改,即隐性的具有 final 的语义。

public class Demo {
interface Scope {
void test();
}
public static void main(String[] args) {
// 定义一个局部变量来测试
int temp = 1;
Demo demo = () -> {
// 可以使用局部变量,但是不能修改其值
System.out.println("局部变量 temp = " + temp );
};
demo.test();
}
}

四大函数式接口

Function 函数式接口
接收T类型,然后返回R类型。里面存在抽象方法:R apply(T t);

Supplier供给型函数
无输入,返回R类型。里面存在抽象方法:R get();

Consumer 消费型接口
无返回,接收一个T类型。里面存在抽象方法:void accept(T t);

Predicate 断言型函数
接受一个T类型并返回判断结果,一个boolean test(T t);

Java新特性-Potional类

(1)static Optional empty() :用来创建一个空的Optional

(2)static Optional of(T value) :用来创建一个非空的Optional

(3)static Optional ofNullable(T value) :用来创建一个可能是空,也可能非空的Optional

Java8-Stream流

Stream分为中间操作和终止操作:
中间操作:中间操作是指调用中间操作函数返回的还是stream流,不会被中断。
终止操作:终止操作会中断stream流,返回具体的类型。

中间操作 :

筛选切片
filter(Predicate p) 过滤操作,排除某些元素。
distinct() 去重
limit(long size) 截断,截取size个元素,若size的数量大于元素个数,那么返回全集
skip(long size) 跳过size个元素 若元素不足size个,返回空流。

映射
map(Funtion f) 映射,将流中的每个元素映射成新的元素。
mapToDouble(toDoubleFunction) 返回一个DoubleStream
mapToInt(toIntFuntion)返回一个IntStream
mapToLong(toLongFuntion)返回一个LongStream
flatMap(Function) 将流中的每个元素都转换为另外一个流,并且将这些流连接起来

排序
sorted() 自然顺序排序
sorted(comparator com) 比较器排序

终止操作:
匹配与查找
allMatch(Predicate p) 检查是否匹配所有元素
anyMatch(Predicate p) 检查是否至少匹配一个元素
noneMatch(Predicate p) 检查是否没有匹配所有元素
findFirst() 返回流中的第一个元素
findAny() 返回流中的任意一个元素

统计
count() 返回流中数据个数总和
max(comparator com) 返回流中最大值
min(comparator com) 返回流中最小值
forEach(Consumer T) 内部迭代

规约
reduce(T iden,BinaryOperator b)可以将流中的反复结合起来,返回一个T
reduce(BinaryOperator b) 可以将流中的反复结合起来,返回一个Optional
收集
collect(Collector c) 将流转换为其他 类型

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值