Java8特性总结

Mr.Jia 2023-5-3 247 5/3

lambda(新的语法规范)

// 箭头操作符 "->" 用于在Java中定义lambda表达式  是一种新的语言规范
// 这是一个lambda表达式的例子,它接受两个整数并返回它们的和:
(int a, int b) -> a + b;

 

stream(针对集合的操作)


// Stream API,它提供了一种以函数式方式处理数据集合的方法 经常配合lambda使用
// 这是使用Stream的filter()方法从列表中过滤出偶数的示例:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> oddNumbers = numbers.stream()
                                    .filter(n -> n % 2 != 0)
                                    .collect(Collectors.toList());
Collectors.mapping()Stream收集器用于将流中的元素进行映射,并将映射结果收集到一个集合中。它接受两个参数:映射函数和收集器。
eg:分组且只取values中的一个字段
list.stream().collect(Collectors.groupingBy(Object::id,Collectors.mapping(Object::name,Collectors.toList())))
Object::namewe为需要映射的函数,Collectors.toList()定义需要转换的集合

Optional(针对null的处理)

  • 提供了链式调用的方法
  • 支持函数式编程lambda
  • Optional.ofNullable()
    ifPresent() 不为null是可进行一些操作处理 没有返回值
    isPresent() 返回布尔值 为null是false  不为null是true
    orElseGet() 当改值为null时会执行该操作,并返回约定的类型
    orElseThrow()  为null定义抛出的异常信息
    剩下都是一些常见的flatMap、map等操作
    ……

 

localDate的好处

1.8之前的日期时间处理起来比较麻烦,且不是线程安全的;

1.8新引入的日期时间是线程安全的,有更加丰富的API功能,更加方便的计算时间

新的日期和时间API的设计也更加符合人类的习惯,比如月份从1开始,而不是从0开始。

import java.time.LocalDate;    
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.Instant;
import java.time.Duration;

// 示例代码:
LocalDate date = LocalDate.now(); // 获取当前日期
LocalTime time = LocalTime.now(); // 获取当前时间
LocalDateTime dateTime = LocalDateTime.now(); // 获取当前日期和时间
Instant instant = Instant.now(); // 获取当前时间戳
Duration duration = Duration.ofMinutes(30); // 创建一个30分钟的时间段

 

 

- THE END -

Mr.Jia

2月18日13:37

最后修改:2024年2月18日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论