明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
随笔 - 1277, 文章 - 0, 评论 - 214, 阅读 - 321万
  博客园  :: 首页  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

应用场景

在项目开发的过程中,我们经常会对List集合进行按条件的过滤,筛选出我们想要的结果或者是符合项目需求的数据。比如:我们有一批学生对象,每个学生都有自己的性别属性,但是我们想要再班级实体中筛选出这一批学生中性别为男或女的学生,我们就需要对这一批学生集合中的数据进行按条件的筛选,得到我们想要的结果。(多表连接:双向映射)
学生实体类

复制代码
public class Student implements Serializable {
    private int id;
    private String name;
    private String sex;
    private String hobbies;
    private Integer bj;
    private TSmClazz clazz;
 
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "BJ", insertable = false, updatable = false)
    @NotFound(action = NotFoundAction.IGNORE)
    @JsonIgnoreProperties(value = "students")
    public TSmClazz getClazz() {
        return clazz;
    }
 
    public void setClazz(TSmClazz clazz) {
        this.clazz = clazz;
    }
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID", unique = true, nullable = false)
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    @Column(name = "NAME")
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    @Column(name = "SEX")
    public String getSex() {
        return sex;
    }
 
    public void setSex(String sex) {
        this.sex = sex;
    }
 
    @Column(name = "HOBBIES")
    public String getHobbies() {
        return hobbies;
    }
 
    public void setHobbies(String hobbies) {
        this.hobbies = hobbies;
    }
 
    @Column(name = "BJ")
    public Integer getBj() {
        return bj;
    }
 
    public void setBj(Integer bj) {
        this.bj = bj;
    }
复制代码

 

使用Java8中的lambda表达式过滤

返回集合:

复制代码
        ModelMap model = new ModelMap();
        TSmClazz TSmClazz = tSmClazzService.get(id);
        List<Student> students = TSmClazz.getStudents();
        if(flag.equals("0")){
            List<Student> boys =students.stream().filter(s->s.getSex().equals("0")).collect(Collectors.toList());
            model.put("data", boys);
        }else if(flag.equals("1")){
            List<Student> girls =students.stream().filter(s->s.getSex().equals("1")).collect(Collectors.toList());
            model.put("data", girls);
        }else{
            model.put("data", students);
        }
复制代码

 

或单体类:

goodsKind = goodsKindList.stream().filter(s->s.getId().equals(storeGoods.getKindNext())).collect(Collectors.toList()).get(0);

 

 

前端显示

 

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2010-03-30 C#程序重新启动(程序重启,非系统重启)
2010-03-30 webBrowser:在extendedwebbrowser中实现IDocHostShowUI.ShowMessage 并判断或触发相应事件
点击右上角即可分享
微信分享提示