求2个集合的差集

        /// <summary>
        /// 求2个集合的差集
        /// </summary>
        public class wage
        {
            public static void Test()
            {
                List<wage> list1 = new List<wage>
                                       {
                                           new wage { Id = 1, Name = "list1" },
                                           new wage { Id = 2, Name = "list1" },
                                           new wage { Id = 3, Name = "list1" },
                                           new wage { Id = 5, Name = "list1" },
                                           new wage { Id = 6, Name = "list1" }
                                       };
                List<wage> list2 = new List<wage>
                                       {
                                           new wage { Id = 1, Name = "list2", },
                                           new wage { Id = 2, Name = "list2", },
                                           new wage { Id = 3, Name = "list2", },
                                           new wage { Id = 4, Name = "list2", },
                                           new wage { Id = 5, Name = "list2", }
                                       };

                ////var union = list1.Union(list2, new MyComparer()).ToList();
                ////var intersect = list1.Intersect(list2, new MyComparer()).ToList();
                ////var except = union.Except(intersect, new MyComparer()).ToList();

                var result = list1.Union(list2, new MyComparer()).Except(list1.Intersect(list2, new MyComparer()), new MyComparer());
                foreach (var item in result)
                {
                    Console.WriteLine("id = {0},  name = {1}", item.Id, item.Name);
                }
            }

            public int Id { set; get; }

            public string Name { set; get; }

            public class MyComparer : IEqualityComparer<wage>
            {
                public bool Equals(wage x, wage y)
                {
                    return x.Id == y.Id;
                }

                public int GetHashCode(wage obj)
                {
                    return obj.Id;
                }
            }
        }
时间: 2024-10-06 00:19:33

求2个集合的差集的相关文章

java求两个集合的差集

public static void main(String[] args) {Set set = new HashSet();Set set1 = new HashSet();set.add("sanny");set.add("mary");set.add("bill");set.add("tom");set.add("tony");set.add("mark");set.add(&q

计算两个集合的差集——第六期 Power8 算法挑战赛

第六期Power8大赛 1.1 比赛题目 题目: 计算两个集合的差集: 详细说明: 分别有集合A和B两个大数集合,求解集合A与B的差集(A中有,但B中无的元素),并将结果保存在集合C中,要求集合C中的元素升序. 输入为两个文件,分别为A.txt,B.txt,一行一个值,并且是无序的.结果输出到C.txt,即输入文件的差集,一行一个值,并且要求结果升序排列. 考量点: (1) 大数集合求差集: (2) 大数据集合排序: 题目实例: 例如,若集合A={5,20,10,15,25,30},集合B={1

SQL集合运算 差集 并集 交

SQL-3标准中提供了三种对检索结果进行集合运算的命令:并集UNION:交集INTERSECT:差集EXCEPT(在Oracle中叫做 MINUS).在有些数据库中对此的支持不够充分,如MySql中只有UNION,没有其他两种.实际上这些运算都可以通过普通的SQL来实现,虽然有时有些繁琐. 假设有两个表(或视图)s,t,s中有两个字段sa,sb:t中有两个字段ta,tb: 差集EXCEPT: PLAIN TEXT SQL: SELECTsaFROMs EXCEPT SELECTtaFROMt;

求两个集合的交集和并集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,

用顺序表实现求两个集合的并集

#include<iostream.h> #include<malloc.h> #include<limits.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #include<stdlib.h> #include<process.h> #define OK 1 #define INIT_LiST_SIZE 100//顺序表的初始长度 #de

Java求字符串数组交集 并集 差集 去重复并集

//系统方法 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Test { public static void main(String[] args) { List list1 =new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add

Linux 两个文件求交集、并集、差集

一.交集 sort a.txt b.txt | uniq -d 二.并集 sort a.txt b.txt | uniq 三.差集 a.txt-b.txt: sort a.txt b.txt b.txt | uniq -u b.txt - a.txt: sort b.txt a.txt a.txt | uniq -u 四.相关的解释 使用sort可以将文件进行排序,可以使用sort后面的玲玲,例如 -n 按照数字格式排序,例如 -i 忽略大小写,例如使用-r 为逆序输出等 uniq为删除文件中重

[java] 求2个集合的交 差 并集

要求2个集合的交 差 并集. set集合,如下 1 import java.util.HashSet; 2 import java.util.Set; 3 4 public class SetTest { 5 public static void main(String[] args) { 6 Set<String> set1=new HashSet<String>(); 7 Set<String> set2=new HashSet<String>(); 8

php 求两个数组的差集应该注意的事情

对于 phper 来说 array_diff 这个函数应该知道它的用途,获取两个数组的差集,我理解中的差集是这样的 但是执行下代码会发现结果并不是 <?php $a = [1,2,3,4,5]; $b = [3,4,5,6,7]; $c = array_diff($a,$b); print_r($c); //输出 Array ( [0] => 1 [1] => 2 ) 我开始以为应该是会输出数组  [1,2,6,7] 才对的但是实际结果却不是,于是去翻下文档: 如图人家说的已经很清楚啦,