java如何使用代码求两个list集合的差集呢?

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]
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » java如何使用代码求两个list集合的差集呢?