使用Lamdba表达式遍历集合与传统遍历集合
小栗子
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Desc:
* @author: jianfeng
* @Time: 2019/10/10 15:38
*/
public class Lambda {
public static void main(String[] args) {
testForeach();
}
public static void testForeach(){
//定义一个数组
String[] array = {
"尼尔机械纪元",
"关于我转生成为史莱姆这件事",
"实力至上主义教师",
"地狱少女"
};
//转换为集合
List<String> acgs= Arrays.asList(array);
//传统遍历方式
System.out.println("传统遍历方式:");
for (String a:acgs){
System.out.println(a);
}
System.out.println();
//使用Lambda表达式以及函数操作(functional operation)
System.out.println("Lamdba表达式以及函数操作:");
acgs.forEach(a -> System.out.println(a));
System.out.println();
//在Java8中使用双冒号操作符(double colon operator)
System.out.println("使用双冒号操作符:");
acgs.forEach(System.out::println);
System.out.println();
}
}
结果
使用Stream去重复
public static void testStreamDuplicates(){
System.out.println("Stream去重复");
//定义一个数组
String[] array = {
"尼尔机械纪元",
"尼尔机械纪元",
"关于我转生成为史莱姆这件事",
"关于我转生成为史莱姆这件事",
"实力至上主义教师",
"实力至上主义教师",
"地狱少女",
"地狱少女"
};
//转换为集合
List<String> acgs=Arrays.asList(array);
//Stream去重复
acgs=acgs.stream().distinct().collect(Collectors.toList());
//打印
acgs.forEach(System.out::println);
}
结果
拓展
使用Lamdba表达式获取集合中得某个值并存入到一个新集合
public OrderDto create(OrderDto dto) {
//获取集合中得某个值,并存入到一个新集合
List<String> productIdList =dto.getOrderDetailList().stream()
.map(OrderDetail::getProductId)
.collect(Collectors.toList());
}