天天看点

JDK8 特性 持续更新1、Lambda表达式【jdk8核心特性】2、Stream3、日期时间4、Join() 字符串拼接

JDK8 特性 持续更新

  • 1、Lambda表达式【jdk8核心特性】
  • 2、Stream
  • 3、日期时间
  • 4、Join() 字符串拼接

1、Lambda表达式【jdk8核心特性】

介绍:

Lambda 表达式,也可称为闭包,它是推动 java 8 发布的最重要新特性。
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
使用 Lambda 表达式可以使代码变的更加简洁紧凑。
           

语法:

(parameters) -> expression
或
(parameters) ->{ statements; }
           

重要特征:

特性 说明 案例
可选类型声明 不需要声明参数类型,编译器可以统一识别参数值。 x -> 2 * x
可选的参数圆括号 一个参数无需定义圆括号,但多个参数需要定义圆括号。 x -> 2 * x
可选的大括号 如果主体包含了一个语句,就不需要使用大括号。 (x, y) -> x – y
可选的返回关键字 如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。 (String s) -> System.out.print(s)

Lambda 表达式案例解释说明:

// 1. 不需要参数,返回值为 5  
 () -> 5 
  
// 2. 接收一个参数(数字类型),返回其2倍的值  
x -> 2 * x  
  
// 3. 接受2个参数(数字),并返回他们的差值  
(x, y) -> x – y  
  
// 4. 接收2个int型整数,返回他们的和  
(int x, int y) -> x + y  
  
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
(String s) -> System.out.print(s) 
           

2、Stream

函数:

函数名 解释
.foreach() 遍历循环
.collect(Collectors) 转换为其他形式

【2.1】

,例如:list.stream().collect(Collectors.toList());
.filter(

Lambda表达式

)
筛选,过滤特定数据
.sorted() 排序,默认升序、sorted(Comparator.comparing(对象::属性))降序
.map(Function f)) 接收流中元素,并且将其映射成为新元素,例如:使用前【admin,zs,ww】list.Stream.map(e -> e.getName() + “531”) 使用后: 【admin531,zs531,ww531】
.limit(long n) 断截流,取前n个元素
.count 返回总数
.mapToDouble(对象::属性) 将对象中的某一个属性转为Double类型
.sum() 求和

`2.1 Collectors配套方法:

函数名 解释
.toListA() 将流转为List集合
.toSet() 将流转为Set集合
.toMap() 将流转为Map集合
.groupingBy(对象::属性) 根据对象中的某个数据分组

3、日期时间

java.time包

apl 解释
Local(本地) 简化了日期时间的处理,没有时区的问题。LocalDateTime currentTime = LocalDateTime.now();
Zoned(时区) 通过制定的时区处理日期时间。

4、Join() 字符串拼接

String.Join(‘分割符’,数组)

意为指定拼接数组字符的连接符号

//案例:
List<Object> list = new ArrList<Object>();
list.add("zs");
list.add("ls");
list.add("ww");
String join = String.Join('-',list)
System.out.println(join);
//结果:zs-ls-ww