这里是使用一个自定义类的集合和一个Integer类的集合做的一次栗子,两个封装类的操作,或者两个基本类型的集合操作都是类似的。
public class CollectionTest {
public static void main(String[] args) {
List<Customer> list = new ArrayList<>();
Customer customer = new Customer();
customer.setId(1);
customer.setName("1");
list.add(customer);
customer = new Customer();
customer.setId(2);
customer.setName("2");
list.add(customer);
customer = new Customer();
customer.setId(3);
customer.setName("3");
list.add(customer);
customer = new Customer();
customer.setId(4);
customer.setName("4");
list.add(customer);
customer = new Customer();
customer.setId(5);
customer.setName("5");
list.add(customer);
List<Integer> integers = new ArrayList<>();
integers.add(1);
integers.add(4);
integers.add(5);
integers.add(6);
integers.add(7);
//取差集
List<Integer> integerss = integers.stream().filter(integer ->
!list.stream().map(Customer::getId).collect(Collectors.toList()).contains(integer))
.collect(Collectors.toList());
System.out.println(integerss);
List<Customer> listw = list.stream().filter(customer1 -> !integers.contains(customer1.getId())).collect(Collectors.toList());
System.out.println(listw);
}
//取交集
List<Integer> integerss = integers.stream().filter(integer ->
list.stream().map(Customer::getId).collect(Collectors.toList()).contains(integer))
.collect(Collectors.toList());
System.out.println(integerss);
List<Customer> listw = list.stream().filter(customer1 -> integers.contains(customer1.getId())).collect(Collectors.toList());
System.out.println(listw);
}
}
不经常使用,但是每次使用呢都得从网上扒拉着栗子写半天才写好,这里记录一下。