1、模型对象类 User
@Data
@AllArgsConstructor
class User{
private String name;
private Integer age;
private Integer salary;
}
2、测试数据
private static List<User> users1 = new ArrayList<>();
static {
users1 = Arrays.asList(
new User("小张",20,3000),
new User("小王",21,3500),
new User("小李",19,5000)
);
}
3、传统方式测试
3.1、求年龄小于21的员工
@Test
public void test1(){
m1();
}
private static void m1(){
List<User> newUser_1 = new ArrayList<>();
for (User user : users1) {
if(user.getAge() < 21){
newUser_1.add(user);
}
}
System.out.println(newUser_1);
}
[User(name=小张, age=20, salary=3000), User(name=小李, age=19, salary=5000)]
3.2、求工资大于4000的员工
@Test
public void test1(){
m2();
}
private static void m2(){
List<User> newUser_2 = new ArrayList<>();
for (User user : users1) {
if(user.getSalary() > 4000){
newUser_2.add(user);
}
}
System.out.println(newUser_2);
}
[User(name=小李, age=19, salary=5000)]
4、Stream流式测试
@Test
public void test1(){
m3();
}
private static void m3(){
Predicate<User> predicate1 = user -> user.getAge()<21;
Predicate<User> predicate2 = user -> user.getSalary()>3000;
List<User> userList = users1.stream()
.filter(predicate1.and(predicate2))
.collect(Collectors.toList());
System.out.println(userList);
}
[User(name&