List的Stream流操作

本文介绍了如何使用List的Stream流操作简化一对多结构的数据处理,减少代码复杂性和运行压力。通过示例展示了stream(), filter(), collect(), distinct(), sorted(), limit(), skip(), map(), flatMap(), anyMatch(), allMatch(), noneMatch(), findAny(), findFirst(), reduce(), count(), collect()和forEach()等方法的用法,提高代码的简易性、可维护性和效率。" 90710914,1450189,Asp.net+Vue 权限控制实现,"['Asp.net', 'Vue', '权限控制']
摘要由CSDN通过智能技术生成

面对一对多结构,查询主实体时需要附带主实体的子实体列表怎么写?查出主列表,循环查子列表

List的Stream流操作可以简化我们的代码,减少程序运行的压力,应对上面的问题,以前的话是先查出对应的list数据,然后根据取到集合中id去查找对应的子实体中数据,接着在放入对应的集合中去,key值表示主实体的id,value值表示对应主实体id查到的对象数据,这样会很麻烦,当数据量大的时候,会增加程序运行的负荷,造成运行缓慢。所以,流式操作代替我们的这一堆操作,提高了代码的简易性,可维护性,可靠性,更不容易出错。
举例一些流式操作的例子:

// An highlighted block
class Person{
   
    private String name;
    private int age;

    public Person(String name, int age) {
   
        this.name = name;
        this.age = age;
    }

    public String getName() {
   
        return name;
    }

    public int getAge() {
   
        return age;
    }

    @Override
 public String toString() {
   
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
@Override
public boolean equals(Object o) {
   
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Person person = (Person) o;
    return age == person.age &&
            Objects.equals(name, person.name);
}

@Override
public int hashCode() {
   
    return Objects.hash(name, age);
}


List<Person> list = new ArrayList<>()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值