HashSet去重
class Program
{
static void Main(string[] args)
{
Console.WriteLine("http://www.itsvse.com");
HashSet<Test1> list1 = new HashSet<Test1>();
HashSet<Test2> list2 = new HashSet<Test2>();
HashSet<string> list3 = new HashSet<string>(); list1.Add(new Test1(1, "a"));
list1.Add(new Test1(2, "b"));
list1.Add(new Test1(3, "c"));
list1.Add(new Test1(4, "d"));
list1.Add(new Test1(4, "d")); list2.Add(new Test2(1, "a"));
list2.Add(new Test2(2, "b"));
list2.Add(new Test2(3, "c"));
list2.Add(new Test2(4, "d"));
list2.Add(new Test2(4, "d")); list3.Add("1");
list3.Add("2");
list3.Add("3");
list3.Add("4");
list3.Add("4"); Console.WriteLine("输出list1");
foreach (var item in list1)
{
Console.WriteLine(item.id);
} Console.WriteLine("输出list2");
foreach (var item in list2)
{
Console.WriteLine(item.id);
} Console.WriteLine("输出list3");
foreach (var item in list3)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
} public class Test1
{
public Test1(long i,string str)
{
this.id = i;
this.a = str;
}
public long id { get; set; }
public string a { get; set; }
} public class Test2
{
public Test2(long i, string str)
{
this.id = i;
this.a = str;
}
public long id { get; set; }
public string a { get; set; } public override bool Equals(object obj)
{
Test2 e = obj as Test2;
return this.id == e.id && this.a == e.a;
} public override int GetHashCode()
{
return this.id.GetHashCode() + this.a.GetHashCode();
}
}

1,如果hash码值不相同,说明是一个新元素,存;
2,如果hash码值相同,且equles判断相等,说明元素已经存在,不存;
3,如果hash码值相同,且equles判断不相等,说明元素不存在,存;
我们Test2对象,重写了对象的的equals和hashCode方法。这里让Test2对象,只要是id和a相同就认为是相同的实例,当然也可以是其他,这就要看具体需求
HashSet去重的更多相关文章
- List通过HashSet去重
//JAVA中//使用hashset去重复,set为重复的集合,可以通过new ArrayList(set)转换成list HashSet<HashMap<String, String&g ...
- java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重
package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ...
- java中List对象列表去重或取出以及排序
面试碰到几次list的去重和排序.下面介绍一种做法: 1. list去重 1.1 实体类Student List<Student>容量10k以上,要求去重复.这里Student的重复标准是 ...
- HashSet中的元素必须重写equals方法和hashCode方法
http://jingyan.baidu.com/article/d5a880eb8fb61d13f147cc99.html 1.为什么必须重写这两个方法. 2.什么事hashSet去重,符合什么样的 ...
- List对象去重碎碎念之神叨叨
前言 List集合操作去除重复数据的这种情况经常会碰到,博客园里面也有很多大神们做过,在这里主要是借鉴然后自己整理了一下,主要是为了方便自己,以后再次碰到这种去重问题,直接打开自己的链接拿起键盘就是干 ...
- List集合去重的一些方法(常规遍历、Set去重、java8 stream去重、重写equals和hashCode方法)
1. 常规元素去重 碰到List去重的问题,除了遍历去重,我们常常想到利用Set集合不允许重复元素的特点,通过List和Set互转,来去掉重复元素. // 遍历后判断赋给另一个list集合,保持原来顺 ...
- java 数组排序并去重
https://www.cnblogs.com/daleyzou/p/9522533.htmlimport java.lang.reflect.Array;import java.util.Array ...
- List转换字典去重问题
数据源 var list = new List<TestClass> { ,Name="}, ,Name="}, ,Name="}, ,Name=" ...
- C#黔驴技巧之去重(Distinct)
前言 关于C#中默认的Distinct方法在什么情况下才能去重,这个就不用我再多讲,针对集合对象去重默认实现将不再满足,于是乎我们需要自定义实现来解决这个问题,接下来我们详细讲解几种常见去重方案,孰好 ...
随机推荐
- CentOS7升级内核kernel5.0
升级过程: 原系统:CentOS7.3 [root@my-e450 ~]# uname -r3.10.0-514.el7.x86_64 安装必需的软件包: # yum update# yum inst ...
- window配合虚拟机VMware搭建虚拟ubuntu服务器入坑集锦
1.VMware虚拟机和主机进行网络连接设置 https://jingyan.baidu.com/article/adc81513b86621f723bf7383.html 2.解决linux虚拟机与 ...
- msyql error: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
mysql> use mydb Reading table information for completion of table and column names You can turn o ...
- python 和 R 语言中的等差数列
等差数列的通项公式:an = a0 + n*d. 数学上 n 是可以取遍整个整个正整数集的,在现实中,n 是有范围的. 1.R 语言用 seq() 函数产生等差数列: 2.python 中 ran ...
- UiPath: Studio 快捷键
以下是 UiPath Studio 键盘快捷键的完整列表: 文件管理 Ctrl + Shift + N - 创建一个新的项目 Ctrl + O - 打开此前创建的工作流文件.仅仅支持扩展名为 .xam ...
- 20180610模拟赛T1——脱离地牢
Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...
- 火车头data下任务文件夹的SpiderResult.db3文件用什么软件打开
火车头采集器默认是用sqlite数据库来保存数据的,新建一个采集,打开data/任务/发现有一个SpiderResult.db3文件,.db3是sqlite的存储文件后缀,那么要如何查看这些文件呢?用 ...
- jenkins中 Slave使用Docker
原因就不说了,网上的自动化测试Docker教程太不靠谱,还是学学官网吧. 目的: 在现在各种虚拟化的大条件下,还在建立N个节点机器或节点机器搞N个并发,是不是太不方便了. 如果一个机器搞N个并发,在自 ...
- CF1081C-Colorful Bricks-(dp||组合数)
http://codeforces.com/problemset/problem/1081/C 题意:有n个排成一行板块,有m种颜色,要让这些板块有k对相邻板块不同颜色,有多少种涂色方法? 比如样例2 ...
- HTML JAVASCRIPT CSS 大小写敏感问题
html: 大小写不敏感 css: 大小写不敏感 javascript: 大小写敏感 但是 但是 但是 这三者是相互联系的, 所以合在一起使用的时候就产生了变化 ---- TagName, Clas ...