java如何使用代码求两个list集合的差集呢?
转自:
http://www.java265.com/JavaCourse/202204/3124.html
集合简介:
集合是一组可变数量的数据项(也可能是0个)的组合,这些数据项可能共享某些特征,需要以某种操作方式一起进行操作。一般来讲,这些数据项的类型是相同的,或基类相同(若使用的语言支持继承)。列表(或数组)通常不被认为是集合,因为其大小固定,但事实上它常常在实现中作为某些形式的集合使用。集合的种类包括列表,集,多重集,树和图。枚举类型可以是列表或集。
下文笔者讲述求list集合的差集的方法简介说明,如下所示:
差集: 用一个集合减去一个集合得到的集合,我们称之为“差集”
实现思路: 使用stream流中的filter方法对集合 进行"不包含关系计算",从而得到差集(jdk8循环的新特性)
例:
package com.java265.other; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class Test16 { /** * java265.com 示例程序 * * @throws IllegalAccessException * @throws InstantiationException */ public static void main(String[] args) throws InstantiationException, IllegalAccessException { List<String> list1 = new ArrayList<String>(); list1.add("java265.com-1"); list1.add("java265.com-2"); list1.add("java265.com-3"); List<String> list2 = new ArrayList<String>(); list2.add("java265.com-8"); list2.add("java265.com-2"); list2.add("java265.com-9"); System.out.println("======================"); // list1 差集 list1 = list1.stream().filter(e -> { return !list2.contains(e); }).collect(Collectors.toList()); System.out.println(list1); } } -----运行以上代码,将输出以下信息------ ====================== [java265.com-1, java265.com-3]