Stream学习(一)
1、简单实体
package com.example.demo.bean;
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private int age;
private String email;
}
2、测试类
package com.example.demo;
import com.example.demo.bean.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@SpringBootTest
public class DemoApplicationTests {
@Test
public void testStream() {
List<User> list = new ArrayList<>();
User user1 = new User();
user1.setId(1);
user1.setAge(28);
user1.setName("zhangsan1");
User user2 = new User();
user2.setId(2);
user2.setAge(18);
user2.setName("zhangsan2");
User user3 = new User();
user3.setId(3);
user3.setAge(22);
user3.setName("zhangsan3");
list.add(user1);
list.add(user2);
list.add(user3);
System.out.println("原始------- " + list);
List<User> list1 = list.stream().filter(u -> u.getAge() < 20).collect(Collectors.toList());
System.out.println("20岁以下的 list1 ------- " + list1);
List<User> list2 = list.stream().sorted(Comparator.comparing(User::getAge)).collect(Collectors.toList());
System.out.println("按照年龄排序后(默认正序)--------- " + list2);
List<User> list3 = list.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList());
System.out.println("按照年龄排序后(倒序)--------- " + list3);
List list4 = list.stream().map(User::getName).collect(Collectors.toList());
System.out.println("获取当前的名字集合--------- " + list4);
List list5 = list.stream().filter(u -> u.getAge() < 25).map(User::getName).collect(Collectors.toList());
System.out.println("筛选后获取名字集合--------- " + list5);
}
}
3、打印结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/46b56353c9d34337b7b4f7e7158292c9.png)