stram流两个list的交集差集

本文介绍如何使用 Java Stream API 来高效地处理集合操作,具体实现两个集合之间的差集与交集计算。通过实际代码案例,展示了如何利用 filter 方法结合集合包含判断来简化集合操作。

最近用的stream比较多,但是也就最简单的foreach和map的使用。今天遇到一个问题是两个集合取差集吧。知道stram有fiter过滤的,但是现在是两个集合,所有百度了好多,今天看到了两个集合取交集差集 香香

  List<Course> courses = courseService.query().eq("user_id", teacherId).eq("is_up",0).list();
        List<Integer> list = baseMapper.findcourseing(classId);
        List<Course> collect = courses.stream().filter(course -> !list.contains(course.getId())).collect(Collectors.toList());

以上是差集,很简单要是交集就把那个!去掉就可以了
好了 草鸡干活去了

### 使用Java Stream API过滤`List<Object>`集合 在Java 8及其后续版本中,Stream API提供了强大的功能用于处理集合数据。对于想要从`List<Object>`集合中筛选特定条件的数据项而言,可以通过调用`.stream()`方法创建,之后利用`.filter()`指定过滤逻辑,并最终通过`.collect(Collectors.toList())`收集结果[^1]。 下面是一个具体的例子,假设有一个包含多个`Person`对象的列表,目标是从该列表中选出年龄大于等于20岁的个体: ```java import java.util.*; import java.util.stream.Collectors; 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; } } public class Main { public static void main(String[] args) { List<Person> people = Arrays.asList( new Person("Alice", 25), new Person("Bob", 19), new Person("Charlie", 30) ); // 过滤出年龄 >= 20岁的人 List<Person> adults = people.stream() .filter(p -> p.getAge() >= 20) .collect(Collectors.toList()); // 输出符合条件的对象 adults.forEach(person -> System.out.println(person.getName())); } } ``` 这段程序首先定义了一个简单的`Person`类表示人的姓名和年龄;接着,在`main`函数里构建了一份人员名单,并运用了Stream API来挑选出所有成年成员(即年龄达到或超过20周岁者),最后遍历打印这些成年人的名字[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值