JAVA SE 8 学习笔记(三)使用lambda编程

本文介绍了Java 8中的Lambda表达式,包括其延迟执行特性、参数选择、函数式接口的应用、返回函数、操作组合、并行处理以及与泛型的交互。通过实例展示了如何在实际开发中有效利用Lambda提升代码的简洁性和效率。
摘要由CSDN通过智能技术生成

三、使用lambda编程


3.1 延迟执行

所有lambda表达式都是延迟执行的,如果希望立即执行一段代码,则没必要使用lambda表达式

延迟执行代码原因可能有:

·在另一个线程中运行代码

·多次运行代码

·在某个算法的正确时间点上运行代码

·在某些情况发生时运行代码(如按钮点击、数据到达)

·只有在需要时运行代码


例如:

public static void info(Logger logger, Supplier<String> message) {

if (logger.isLoggable(Level.Info))

logger.info(message.get());

}

logger.info(() -> 一些运算);

只有当条件符合时,运算才会被执行。


3.2 选择lambda表达式的参数

 一般来说,在设计算法时,希望将所需信息作为参数传递进逻辑。

如果需要在lambda表达式执行时捕获传入的参数,可以选择IntConsume等接口

例如:

public static void repeat(int n, IntConsumer action) {

for(int i=0; i<n; i++)  action.accept(i);

}

如果不需要参数,可以考虑以下写法

public static void repeat(int n, Runnable action) {

for ( int i=0; i<n; i++) action.run();

}

repeat(10, () -> System.out.println("Hello, World!"));


3.3 选择一个函数式接口


Table 3-1 Common Functional Interfaces

Functional Interface

Parameter Types

Return Type

Abstract Method Name

Description

Other Methods

Runnable

none

void

run

Runs an action without arguments or return value

Supplier<T>

none

T

get

Supplies a value of type T

Consumer<T>

T

void

accept

Consumes a value of typeT

chain

BiConsumer<T, U>

T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值