`

List差集

    博客分类:
  • Java
阅读更多
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * List工具类
 * <p>
 *   提供处理List对象的各种方法实现。
 * </p>
 * 
 * @author harbey
 * @version 1.0
 * @since 2009-07-30
 */
public class ListUtil {

	/**
	 * List对象差集
	 * <p>
	 *   使用深复制,不会影响List参数对象。
	 * </p>
	 * @param decList 被减数List对象
	 * @param subList 减数List对象
	 * @return 结果List
	 * @throws IllegalArgumentException
	 */
	public static List<String> plusArrayList(List<String> decList,List<String> subList) throws IllegalArgumentException{
		   
		   if(decList==null || subList==null){
			   throw new IllegalArgumentException();
		   }
	 
			List<String> tempDecList = new ArrayList<String>(new ArrayList(Arrays.asList(new Object[decList.size()])));
			List<String> tempSubList = new ArrayList<String>(new ArrayList(Arrays.asList(new Object[subList.size()])));
		   
			Collections.copy(tempDecList, decList);
			Collections.copy(tempSubList, decList);
			
			tempDecList.removeAll(tempSubList);
			
		    return tempDecList;
	   }
	   
}



如果
List<String> tempDecList = new ArrayList<String>(decList.size());
则会报java.lang.IndexOutOfBoundsException错误!
原因:
ArrayList   iss=new   ArrayList(ist.size());does   not   ensure   size,   but   set   the   initialize   of   the   internal   array.  


分享到:
评论
2 楼 paris 2011-10-11  
第二行Collections.copy(tempSubList, decList); 后边的参数应该是subList,应该是笔误吧 
1 楼 zhangyou1010 2009-09-23  
List<String> tempDecList = new ArrayList<String>(decList.size());
这样写的话tempDecList会初始化decList.size()个null元素,但tempDecList 的size还是0,所以会报错。

学习了。

相关推荐

    List求差集

    本篇文章将详细讲解如何利用C#的基础类库,特别是`List&lt;T&gt;`类来实现求差集的操作,无需手动编写复杂的算法。 首先,差集的概念是指在集合A中存在,但在集合B中不存在的所有元素组成的集合。用数学符号表示为A-B(或...

    Python求两个list的差集、交集与并集的方法

    两个list差集 如有下面两个数组: a = [1,2,3] b = [2,3] 想要的结果是[1] 下面记录一下三种实现方式: 1. 正常的方式 复制代码 代码如下:ret = [] for i in a:  if i not in b:  ret.append(i) 2. 浓缩版 复制...

    Python 两个列表的差集、并集和交集实现代码

    ret_list = list((set(a_list).union(set(b_list))) ^ (set(a_list) ^ set(b_list))) print(ret_list) ``` **解释:** 1. 计算两个集合的并集和对称差集。 2. 对并集和对称差集进行异或运算得到交集。 3. 转换成...

    C#Linq获取两个List或数组的差集交集.pdf

    C# Linq 获取两个 List 或数组的差集交集 在实际开发中,我们经常遇到需要获取两个 List 或数组的差集交集问题,例如在树形选择节点中,需要根据之前选择的 ID 集合和新选择的 ID 集合来确定需要处理的 ID 集合。在...

    Python中list的交、并、差集获取方法示例

    1. 获取两个list 的交集 # -*- coding=utf-8 -*- #方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for val in a if ...3. 获取两个list 的差集 print list(set(b).difference(set(a))) # b中有而a中没有的 print list(s

    delphi Memo及tstrlists的交集差集并集

    在本篇文章中,我们将深入探讨如何在Delphi中使用`TMemo`和`TStringList`来实现交集、差集和并集的操作。 首先,`TMemo`是一个可视组件,它在用户界面中表现为一个可编辑的文本框,可以用来显示大量的文本信息。你...

    给出两个以行为单位文本文件的差集的命令行工具

    给出两个以行为单位文本文件的差集的命令行工具。 功能为输出当前目录下在文本文件prog中且不在文本文件list中的行。 可以用重定向将结果输出到文件中,比如: lackof &gt;result 注意文件无后缀名 比如文件prog中有4行...

    c# linq的差集,并集,交集,去重代码(分享)

    如下所示: using System.Linq; List&lt;string&gt; ListA = new List(); List&lt;string&gt; ListB = new List(); List&lt;string&gt; ListResult = new List();...//差集 ListResult= ListA.Union(ListB).ToList(); //并集 ListResul

    C# 两个datatable中的数据快速比较返回交集 并集或差集

    当我们处理多个DataTable时,可能需要比较它们之间的数据,找出交集、并集或差集。这在数据分析、数据清洗或者数据库同步等场景中非常常见。本教程将通过一个完整的源码示例,帮助初学者理解如何在C#中快速地完成这...

    js取两个数组的交集|差集|并集|补集|去重示例代码|angluo-javascript-98592.pdf

    本篇将详细介绍如何使用JavaScript来获取两个数组的交集、差集、并集和补集,以及如何去除数组中的重复元素。这些操作在实际编程中非常实用,可以帮助我们有效地处理和分析数据。 首先,我们需要一个辅助方法`each`...

    Java中的Map&List;

    Java中的Map&List Map和List是Java中两个最基本的数据结构,广泛应用于各种 Java 应用程序中。本文将详细介绍Map和List的概念、实现类、方法和应用场景。 List接口 List接口是Java中的一个基本接口,用于存储一组...

    无差集和main函数.docx

    这篇文档主要介绍的是在C语言环境下,如何使用顺序表(Sequential List)来处理集合操作,如求交集、并集和差集。顺序表是一种线性数据结构,它的所有元素在内存中是连续存放的,这使得随机访问和修改元素变得高效。...

    python获得两个数组交集、并集、差集的方法

    本文实例讲述了python获得两个数组交集、并集、差集的房部分。分享给大家供大家参考。具体如下: 1. 获取两个list 的交集 #方法一: ...3. 获取两个 list 的差集 print list(set(b).difference(set(a))

    基于python求两个列表的并集.交集.差集

    主要介绍了基于python求两个列表的并集.交集.差集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python DataFrame 取差集实例

    需求:给定一个dataframe和一个list,list中存放的是dataframe中某一列的元素,删除dataframe中与list元素重复的行(即取差集)。 在网上搜了一圈,好像没看到DataFrame中取差集的方式,所以自己写了一个。方法比较...

    java8 集合求差集、并集、交集的实例

    下面小编就为大家分享一篇java8 集合求差集、并集、交集的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Python实现两个list求交集,并集,差集的方法示例

    主要介绍了Python实现两个list求交集,并集,差集的方法,结合实例形式分析了Python使用intersection、union及difference方法实现两个集合list的交集、并集与差集操作技巧,需要的朋友可以参考下

    c# list部分操作实现代码

    C# Linq获取两个List或数组的差集交集 代码如下:List&lt;int&gt; list1 = newList();list1.Add(1);list1.Add(2);list1.Add(3);List&lt;int&gt; list2 = newList();list2.Add(3);list2.Add(4);list2.Add(5);//得到的结果是4,5 即...

Global site tag (gtag.js) - Google Analytics