前言:
Java8已经发布很久了,但是它的新特性想必也是鲜为人知。

//最简单的一句:
Arrays.asList( "刘备", "关羽", "张飞" ).forEach(System.out::println);
或则
Arrays.asList( "刘备", "关羽", "张飞" ).forEach(e -> System.out.println( e ) );
都可以输出结果如下:
毋庸置疑,Java 8是Java自Java 5发布之后的一个很重要的梯度型版本。这个版本主要是涵盖了库、工具、语言、JVM和编译器等方面的十多个新特性。这里我们就调其中的一个Lambda表达式作为一个切入点简单聊下:
正文:
1. 新建实体类Sanguo.java
Sanguo.java完整代码如下:
package com.yixin.hydra.test;
import lombok.Data;
import java.io.Serializable;
/**
* @package: com.yixin.hydra.test
* @description: 三国实体类
* @author: IT讲坛
* @create: 2018-11-22 11:24
**/
@Data
public class Sanguo implements Serializable {
private static final long serialVersionUID = -4407341274877877134L;
private String name;
private int sex;
private int age;
public Sanguo(){
}
public Sanguo(String name,int sex,int age){
this.name=name;
this.age=age;
this.sex=sex;
}
}
2. 新建测试类LambdaTest.java
完整的LambdaTest.java代码如下:
package com.yixin.hydra.test;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @package: com.yixin.hydra.test
* @description: lambda
* @author: IT讲坛
* @create: 2018-11-22 11:18
**/
@Slf4j
public class LambdaTest {
public static void main(String []args){
// //最简单的一句:
// Arrays.asList( "刘备", "关羽", "张飞" ).forEach(System.out::println);
//
// Arrays.asList( "刘备", "关羽", "张飞" ).forEach(e -> System.out.println( e ) );
//新建实体类
Sanguo sanguoLiu=new Sanguo("刘备",1,29);
Sanguo sanguoGuan=new Sanguo("关羽",0,26);
Sanguo sanguoFei=new Sanguo("张飞",1,22);
//以前的遍历方式
List<Sanguo> sanguoList=new ArrayList<>();
sanguoList.add(sanguoFei);
sanguoList.add(sanguoGuan);
sanguoList.add(sanguoLiu);
for (Sanguo sanguo:sanguoList) {
log.info(JSONObject.toJSONString(sanguo));
}
}
}
输出结果:
运用了Lambda之后
//输出list里面全部的人物信息
sanguoList.forEach(sanguo-> {
log.info(JSONObject.toJSONString(sanguo));
});
//输出年龄大于22的人物信息
sanguoList.stream().filter(sanguo -> sanguo.getAge()>22).forEach(sang -> {
log.info(JSONObject.toJSONString(sang));
});
输出结果:
Java8还有很多新特性,比如java对Base64编码的支持已经加入到Java 8官方库里面,这样java开发者,就无需依赖第三方库就可以进行Base64的编解码。其他的新特性希望有兴趣的同学能够继续深入探讨,这里不做过多的讲解。
私信回复(学习)获取最新技术干货。每天都有更新。

本文暂时没有评论,来添加一个吧(●'◡'●)