求两个集合的交集和并集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[]{,,,,,,,};
int [] arrB=new int[]{,,,,};
HashSet<int> hashset=new HashSet<int>();
hashset = JiaoJi(arrA, arrB);
HashSet<int> hashsetB = new HashSet<int>();
hashsetB = BingJi(arrA, arrB);
Console.Write("他们交集如下:");
foreach (var i in hashset)
{
Console.Write(i);
}
Console.WriteLine();
Console.Write("他们的并集如下:");
foreach (var i in hashsetB)
{
Console.Write(i);
}
Console.ReadKey(); }
/// <summary>
/// 求两个数组的并集
/// </summary>
/// <param name="arrayA"></param>
/// <param name="arrayB"></param>
/// <returns></returns>
static HashSet<int> BingJi(int[] arrayA, int[] arrayB)
{
HashSet<int> hashset = new HashSet<int>();
for (int i = ; i < arrayA.Length; i++)
{
hashset.Add(arrayA[i]);
}
for (int j = ; j < arrayB.Length; j++)
{
hashset.Add(arrayB[j]); }
return hashset; }
/// <summary>
/// 求两个集合的交集
/// </summary>
/// <param name="arrayA">传入数组a</param>
/// <param name="arrayB">传入数组B</param>
/// <returns></returns>
static HashSet<int> JiaoJi(int[] arrayA, int[] arrayB)
{
//求两个集合的交集 //hashset的就是专门求两个交集而生的 或者并集 他的add方法的 会判断
//如果你存在了这个记录,他就会返回false 这里就是利用了这个思路
HashSet<int> s = new HashSet<int>();
HashSet<int> s2 = new HashSet<int>();
for (int i = ; i < arrayA.Length; i++)
{
s.Add(arrayA[i]);
}
for (int j = ; j < arrayB.Length; j++)
{
if (s.Add(arrayB[j]) == false)
{
s2.Add(arrayB[j]);
}
}
return s2;
}
}
}
结果如图:
如果有什么疑问,欢迎大家一起讨论学习
求两个集合的交集和并集C#的更多相关文章
- java求两个集合的交集和并集,比较器
求连个集合的交集: import java.util.ArrayList; import java.util.List; public class TestCollection { public st ...
- 求两个list的交集和并集
两个list的并集,只需去除重复元素即可: 将两个list放入同一个set中即可: 两个list的交集: 1将其中一个list放入set, 2循环另一个list,每次向set塞值, 3判断set的总数 ...
- C# 数组比较--取得两个集合的交集,差集,并集的方法
方法关键字: 交集:Intersect 差集:Except 并集:Union 使用代码: , , , , }; , , , , }; var 交集 = arr1.Intersect(arr2).ToL ...
- js取两个数组的交集|差集|并集|补集|去重示例代码
http://www.jb51.net/article/40385.htm 代码如下: /** * each是一个集合迭代函数,它接受一个函数作为参数和一组可选的参数 * 这个迭代函数依次将集合的每一 ...
- java用最少循环求两个数组的交集、差集、并集
import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List ...
- Python3.7.1学习(三)求两个list的差集、并集与交集
在python3.7.1对列表的处理中,会经常使用到Python求两个list的差集.交集与并集的方法. 下面就以实例形式对此加以分析. # 求两个list的差集.并集与交集# 一.两个list差集# ...
- C# 集合的交集 差集 并集 去重
C# 集合的交集 差集 并集 去重 两个对象list,直接比较是不行的,因为他们存的地址不一样 需要重写GetHashCode()与Equals(object obj)方法告诉电脑 class Stu ...
- java使用bitmap求两个数组的交集
一般来说int代表一个数字,但是如果利用每一个位 ,则可以表示32个数字 ,在数据量极大的情况下可以显著的减轻内存的负担.我们就以int为例构造一个bitmap,并使用其来解决一个简单的问题:求两个数 ...
- python两个 list 交集,并集,差集的方法+两个tuple比较操作+两个set的交集,并集,差集操作+两个dict的比较操作
转自:http://blog.chinaunix.net/uid-200142-id-3992553.html 有时候,为了需求,需要统计两个 list 之间的交集,并集,差集.查询了一些资料,现在总 ...
随机推荐
- win10 剪贴板 拒绝访问 Cannot open clipboard
win10 Cannot open clipboard:拒绝访问. 在RAD IDE代码编辑器中,双击选中的文本,会自动复制到剪贴板里,导致的问题是 从 A处复制文本 到B处双击选中,粘贴的时候,是B ...
- Python自动化 【第十一篇】:Python进阶-RabbitMQ队列/Memcached/Redis
本节内容: RabbitMQ队列 Memcached Redis 1. RabbitMQ 安装 http://www.rabbitmq.com/install-standalone-mac.htm ...
- jdk1.7和jdk1.8的String的getByte方法的差异
最近遇到一个奇葩的bug,jdk1.7下正常的程序到了jdk1.8下就不能用了,经过查找原因发现是因为jdk版本升级导致的获取的getbyte时得到的byte数组不同造成的.
- c++中resize函数怎么用
resize(),设置大小(size);reserve(),设置容量(capacity);size()是分配容器的内存大小,而capacity()只是设置容器容量大小,但并没有真正分配内存.打个比方: ...
- HttpClient接口测试之会话保持
HttpClient接口测试之会话保持 HttpClient4.X自带会话保持功能,使用同一个HttpClient未关闭的连接即可保持登陆会话,如果多个HttpClient想要使用一个登陆会话 ...
- VS2010中没有ado.net entity data model实体数据模型这一选项-解决办法
前提先安装VS2010 SP1包. 解决办法: 1.从VS2010的安装盘目录下面的WCU\EFTools找到ADONETEntityFrameworkTools_chs.msi和ADONETEnti ...
- GIT GUI的使用
http://blog.csdn.net/fym0512/article/details/7713006
- show status和show variables区别解析
1.show status 查看系统运行的实时状态,便于dba查看mysql当前运行的状态,做出相应优化,动态的,不可认为修改,只能系统自动update. MariaDB [(none)]> ...
- ORACLE临时表空间
ORACLE临时表空间总结 2014-10-05 11:35 by 潇湘隐者, 临时表空间概念 临 时表空间用来管理数据库排序操作以及用于存储临时表.中间排序结果等临时对象,当ORACLE里需要用到S ...
- DOM元素querySelectorAll可能让你意外的特性表现
一.时间紧急,废话少说 本文所在的页面藏匿了下面这些代码: <img id="outside"> <div id="my-id"> &l ...