概述
1.先创建一个测试用的User类,采用builder模式
package com.example.demo.models;
import lombok.Builder;
import lombok.Getter;
@Builder
@Getter
public class User {
public long id;
public String name;
public int age;
public String job;
}
2.编写测试类
package com.example.demo;
import com.example.demo.models.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.*;
import java.util.stream.Collectors;
@SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() {
}
static List<User> list = new ArrayList();
static {
list.add(User.builder().id(1).name("赵一").age(20).job("teacher").build());
list.add(User.builder().id(2).name("钱二").age(30).job("policeman").build());
list.add(User.builder().id(3).name("孙三").age(40).job("teacher").build());
list.add(User.builder().id(4).name("李四").age(50).job("policeman").build());
list.add(User.builder().id(5).name("周五").age(60).job("teacher").build());
list.add(User.builder().id(6).name("吴六").age(60).job("policeman").build());
list.add(User.builder().id(7).name("郑七").age(70).job("teacher").build());
list.add(User.builder().id(8).name("王八").age(80).job("teacher").build());
list.add(User.builder().id(9).name("冯九").age(90).job("policeman").build());
list.add(User.builder().id(10).name("陈十").age(100).job("teacher").build());
}
@Test
void lambdaTest() {
//分组
//按用户职业分组
Map<String, List<User>> groupList = list.stream().collect(Collectors.groupingBy(User::getJob));
//过滤
//获取年龄大于53岁的人
List<User> filterList = list.stream().filter(u -> u.getAge() > 53).collect(Collectors.toList());
//map
//获取所有有用户的id
List<Long> mapList = list.stream().map(User::getId).collect(Collectors.toList());
//排序
//通过sort对单字段多字段进行排序
//正序
list.sort(Comparator.comparing(User::getAge));
//倒序
list.sort(Comparator.comparing(User::getAge, ((o1, o2) -> o2.compareTo(o1))));
//先按年龄正序,在按id倒序
list.sort(Comparator.comparing(User::getAge).thenComparing(User::getId, ((o1, o2) -> o2.compareTo(o1))));
//获取用户id并倒序排序
List<Long> idList = list.stream().map(User::getId).sorted(((o1, o2) -> o2.compareTo(o1))).collect(Collectors.toList());
//去重
//通过distinct 按job去重
List<String> distincList = list.stream().map(User::getJob).distinct().collect(Collectors.toList());
//求和
int sum = list.stream().mapToInt(User::getAge).sum();
//最值
int minage = list.stream().map(User::getAge).min(Integer::compareTo).get();
int maxage = list.stream().map(User::getAge).max(Integer::compareTo).get();
//循环
list.stream().forEach(u -> u.job = "IT");
//获取键值对
Map<String, String> map = new HashMap<>();
map.put("张三", "20");
map.put("李四", "30");
map.entrySet().forEach(t -> {
System.out.println(t.getKey() + "," + t.getValue());
});
}
}
最后
以上就是稳重世界为你收集整理的lambda表达式常用语法的全部内容,希望文章能够帮你解决lambda表达式常用语法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复