求两个集合的交集和并集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 之间的交集,并集,差集.查询了一些资料,现在总 ...
随机推荐
- 40、dom以xml结尾的文件
1.student.xml文件 <?xml version="1.0" encoding="utf-8" ?> <!-- 1.书写根元素(因为 ...
- 【转载】 Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
Android下拉刷新pullToRefreshListViewGridView 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/3 ...
- MATLAB 文件对话框之图片格式转换
localpathname为当前路径,需要保存图片的位置,根据自己的实际路径设置,usedpathname用来保存打开的文件位置,方便下次打开文件对话框以上次的路径为默认路径. global used ...
- 我在使用vs进行C#编程中常用的几个快捷键
在vs中进行C#编程时: (1)输入svm然后按Tab键会生成Main函数: (2)Ctrl +k+s 三个键一起按,会调出代码段:选中多行后,然后按以上三个快捷键,输入需要使用的代码段,按下Tab, ...
- {POJ}{3971}{Scales}{O(N)动态规划}
题意:给定一堆2二进制砝码,给定一个物品,要求在天平两端加入物品和砝码使之平衡,求可能数. 思路:一开始想到了直接用数学原理,结果没证出来.做如下思考,此题需要用二进制: (1)设物品重量为w,加入的 ...
- [c#]一个窗体调用另一个窗体的事件
StuAddForm a = new StuAddForm(); a.IfStudent(textBox1.Text.Trim()):
- linux学习4 网络命令和关机重启
网络命令 write write 用户名 回车后输入信息 以 ctrl+d 保存结束 wall wall [message] //that is all,发送给所有人 ping ping 选项 IP地 ...
- php上传大文件设置方法
打开php.ini,首先找到 ;;;;;;;;;;;;;;;; ; file uploads ; ;;;;;;;;;;;;;;;; 区域,有影响文件上传的以下几个参数: file_uploads = ...
- java写接口
1.先导spring包 2.首先配置spring.xml的监听web.xml配置. <context-param> <param-name>contextConfigLocat ...
- 苹果手机overflow:auto的卡顿
如果你对某个div或模块使用了overflow: scroll属性,在iOS系统的手机上浏览时,则会出现明显的卡顿现象.但是在android系统的手机上则不会出现该问题 通过一个早上的百度搜索和与前端 ...