List 集合的交集

private void Test()
{
List<string> lsA = new List<string>();
lsA.Add("A");
lsA.Add("B");
lsA.Add("C");
lsA.Add("D");

List<string> lsB = new List<string>();
lsB.Add("C");
lsB.Add("D");
lsB.Add("E");
lsB.Add("F");

List<string> lsC = new List<string>();
lsC.Add("D");
lsC.Add("G");
lsC.Add("H");

IEnumerable<string> lstNew = null;
lstNew = lsA.Intersect(lsB, StringComparer.OrdinalIgnoreCase);

lstNew = lstNew.Intersect(lsC, StringComparer.OrdinalIgnoreCase);
//也可以连着写,如下
// lstNew = lsA.Intersect(lsB, StringComparer.OrdinalIgnoreCase).Intersect(lsC, StringComparer.OrdinalIgnoreCase);

//下面这种方式也可以
// IEnumerable<string> lsIntersect = Enumerable.Intersect(lsA, lsB);

string str = string.Empty;
if (lstNew != null && lstNew.Count<string>() > 0)
{
foreach (string c in lstNew)
{
str += c;
}
}
MessageBox.Show(str);
}

时间: 2024-10-29 14:52:29

List 集合的交集的相关文章

计算两个集合的交集数字(java)

循环判断2个数组 将相同的公共元素复制到新数组中即可 1 2 3 import java.util.Arrays; 4 5 public class count_same_number { 6 7 public static int[] join(int[] a,int[] b) 8 { 9 int count=0; 10 int new_target[]=new int[Math.max(a.length, b.length)];//新数组 11 int index=0; 12 for(int

求两个集合的交集和并集C#

我是用hashset<T>来实现的 具体如代码所示 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace JiaoJi { class Program { static void Main(string[] args) { int [] arrA=new int[8]{1,2,3,4,5,6,7,8}; int [] arrB=new int[5]{4,5,

java的集合操作(交集、并集、差集)整理

/**     * 求ls对ls2的差集,即ls中有,但ls2中没有的     *      * @param ls     * @param ls2     * @return      */    public static List diff(List ls, List ls2) {        List list = new ArrayList(Arrays.asList(new Object[ls.size()]));        Collections.copy(list, ls

mysql获取两个集合的交集和差集

mysql中获取两个集合的交集,我的方法如下: 1.两个集合的结构要一致,对应的字段数,字段类型 2.将两个集合用 UNION ALL 关键字合并,这里的结果是有重复的所有集 3.将上面的所有集 GROUP BY id 4.最后 HAVING COUNT(id)=1,等于1的意思是只出现了一次,所以这个是差集,如果等于2,那么就是交集 这是实现的基本原理,具体如下: 1 -- 下面的sql有明显的问题,不过这个只是一个示意,从一个表中查询不需要用到交集和差集,条件可以合并在一起直接查询出来的.能

set,map,list集合的交集差集存放相同值反转分割等-代码优雅之道Guava(三)

前言 前边已经对Guava类库做了简单介绍(博文:Java代码优雅之道-Guava(有相关jar包下载)),下面就简单介绍操作Set,Map,List集合的工具类的使用,学会灵活使用这些工具,会使用我们在开发中,更加省时省力,代码健壮性和可读性更高,更简洁,这也是我所谓的"代码优雅",让我们开发中省出时间来去处理更重要的东西,废话不多说,一看代码就全明了了. 创建泛型集合更加简介 //创建泛型集合更加简介 List<String> stringList=Lists.newA

A、B两个整数集合的交集

rt,这是一个经典问题. 参考1:http://www.sysexpand.com/?path=exercises/array-intersection 参考2:http://leetcode.com/2010/03/here-is-phone-screening-question-from.html 用数组来模拟(本质上说集合中是没有重复元素的,这里用数组来模拟可以用重复元素),A.B数组长度分别为m和n.总的来说,分为以下几种方案. 方案1:两重循环判断(复杂度 O(m*n)) 暴力方法,并

求两个整数集合的交集

这里要用到C++-STL中的set容器,这个容器的特点就是去重! 设计测试:给定两个集合 a[] = {1,2,3,4,5,6}; b[] = {4,5,6,7,8,9}; 则集合的交集为4,5,6 代码如下,仅供参考: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #include <set> 5 #define M 6 6 #define N 6 7 using name

Java大集合求交集的方法比较

两个List集合求交集想必学过Java的都知道用系统自带的retainAll()方法,但是在数据量比较大时,这个方法效率并不高,利用空余时间研究了几种数据量较大时求两个集合交集的办法.本文主要研究了JDK自带方法求交集.Guava集合求交集.Java8的parallelStream并行流求交集.双指针方法求交集以及bitmap求交集的方法和效率. JDK自带方法 最常用的求交集方法,在小数据量的时候没什么问题,一旦两个集合的数据量达到几十万级别时,效率就严重偏低,底层实际上也是两个for循环,只

集合方法 交集差集

# # 集合:属于可变的数据类型 无序的 但是集合里面的元素必须是不可变的数据类型 集合内没有重复的元素# sct1 = {"dd","ee"}# #增 add() update()# sct1.add("dde") # 添加一个指定的元素# sct1.update("da") #把每个元素迭代增加# sct1.add("dd")# print(sct1)## #删 pop() remove() clear

Java里面如何求两个集合的交集

在Python里,或许我们没有这个烦恼,因为python里已经为我们提供了intersection这样的方法. 但是在Java里,就需要我们动一番脑筋了.这里浓重推荐下apache的CollectionUtils工具类. 方法签名如下所示: org.apache.commons.collections.intersection(final Collection a, final Collection b) 那么这个方法是怎么实现的呢?这里以list为例 public class TestInte