C# HashSet<T> 简单使用
一个简单的HashSet<T> 的例子,介绍其简单的方法,深入学习可参考微软:https://msdn.microsoft.com/en-us/library/bb359438(v=vs.110).aspx
static void Main(string[] args)
{
//定义两个哈希集合以及其中一个集合的子集
HashSet<int> hashSet1 = new HashSet<int>() { , , , , };
HashSet<int> hashSet2 = new HashSet<int>() { , , , , };
HashSet<int> hashSet1Sub = new HashSet<int>() { , };
HashSet<int> hashSetAll = new HashSet<int>(); string message = String.Empty;
bool result = false; #region Hash集合元素唯一性体现
result = hashSet1.Add(); //集合1中添加重复元素
if (result)
{
message = "Hash集合已存在该元素";
}
else
{
message = "元素添加成功";
}
Console.WriteLine(message);
#endregion #region Hash表子集、交集判断
result = hashSet1.IsSubsetOf(hashSet2);
if (result)
{
message = "Hash集合2是集合1的子集";
}
else
{
message = "Hash集合2不是集合1的自己";
}
Console.WriteLine(message); result = hashSet1.Overlaps(hashSet2);
if (result)
{
message = "Hash集合1和Hash集合2存在交集";
}
else
{
message = "Hash集合1和hash集合2不存在交集";
} result = hashSet1.IsSupersetOf(hashSet2);
if (result)
{
message = "集合1完全包含集合2";
}
else
{
message = "集合1不完全包含集合2";
}
#endregion #region 集合的初始化
hashSetAll = new HashSet<int>(hashSet1);
hashSetAll.UnionWith(hashSet2);
hashSetAll.UnionWith(hashSet1Sub); message = "输出所有集合的元素";
Console.WriteLine(message);
foreach (int item in hashSetAll)
{
Console.WriteLine(item);
}
#endregion #region 排除元素
hashSetAll.ExceptWith(hashSet2);
message = "排除了集合2并输出";
Console.WriteLine(message);
foreach (var item in hashSetAll)
{
Console.WriteLine(item);
}
#endregion Console.ReadKey();
}
C# HashSet<T> 简单使用的更多相关文章
- java基础---->hashSet的简单分析(一)
对于HashSet而言,它是基于HashMap实现的,底层采用HashMap来保存元素的.今天我们就简单的分析一下它的实现.人生,总会有不期而遇的温暖,和生生不息的希望. HashSet的简单分析 一 ...
- java集合-HashSet
HashSet 概述 对于 HashSet 而言,它是基于 HashMap 实现的,底层采用 HashMap 来保存元素,所以如果对 HashMap 比较熟悉了,那么学习 HashSet 也是很轻松的 ...
- 【java集合框架源码剖析系列】java源码剖析之HashSet
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本.本博客将从源码角度带领大家学习关于HashSet的知识. 一HashSet的定义: public class HashSet&l ...
- Redis入门的简单使用
Redis是什么? redis是一个开源的,面向键/值对的NOSQL的分布式数据库系统 NOSQL指的是非关系型的数据,简单直白地讲就是在非关系型的数据库中不存在表的概念,而是以键值对的方式, 即一个 ...
- JDK源码分析(五)——HashSet
目录 HashSet概述 内部字段及构造方法 存储元素 删除元素 包含元素 总结 HashSet概述 从前面开始,已经分析过集合中的List和Map,今天来介绍另一种集合元素:Set.这是JDK对 ...
- Java集合学习(3):HashSet
一.概述 HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素. HashSet是基于Has ...
- C#中HashSet的重复性与判等运算重载
目录 一个故事-- 一个繁荣的遥远国度:泛型容器 但是我也不确定容器里能放些什么东西啊 一个英勇的皇家骑士:HashSet 值类型的HashSet 引用类型的HashSet 另外一个--故--事?? ...
- HashSet 的实现原理
HashSet 概述 对于 HashSet 而言,它是基于 HashMap 实现的,底层采用 HashMap 来保存元素,所以如果对 HashMap 比较熟悉了,那么学习 HashSet 也是很轻松的 ...
- Java 中最常见的 5 个错误
在编程时,开发者经常会遭遇各式各样莫名错误.近日,Sushil Das 在 Geek On Java上列举了 Java 开发中常见的 5 个错误,与君共「免」. 原文链接:Top 5 Common M ...
随机推荐
- ORACLE RAC如何增加节点
ORACLE RAC系统是一个可以横向进行扩展的系统,当一个RAC系统计算能力不满足客户的需求时候,增加节点能够快速增加整个系统的计算能力,使得客户系统计算能力得到一定的提升,以满足客户不断增长的计算 ...
- Linux就该这么学 20181005(第八章防火墙)
参考链接https://www.linuxprobe.com/ vim /etc/sysconfig/network-scripts/ifcfg-ens32 网络配置0 nmtui 网络配置1 nm- ...
- [JZOJ 5437] [NOIP2017提高A组集训10.31] Sequence 解题报告 (KMP)
题目链接: http://172.16.0.132/senior/#main/show/5437 题目: 题解: 发现满足上述性质并且仅当A序列的子序列的差分序列与B序列的差分序列相同 于是我们把A变 ...
- [JZOJ 5875] [NOIP2018提高组模拟9.20] 听我说,海蜗牛 解题报告(BFS+二分)
题目链接: http://172.16.0.132/senior/#main/show/5875 题目: 题解: 注意这题只能经过开放的港口 我们考虑用vector存下每个点不能到的点,并把并让vec ...
- 10.ref regex unordered_set smartpoint
ref引用不可以复制的对象 void print(std::ostream &os, int i) { os << i << endl; } //ref引用不可以复制的 ...
- C++之易混淆知识点三---算法分析
最近复习算法,感到有一丝丝忘记的困惑,赶紧记下来... 一.分治法 分治法的思想就是“分而治之”,很明显就是将规模比较庞大.复杂的问题进行分治,然后得到多个小模块,最好这些小模块之间是独立的,如果这些 ...
- css让背景颜色与背景图片同时显示
background:url(../images/bg02.png) #25282e left top no-repeat;
- 织梦(dedecms)循环调用多级子栏目如二级栏目下三级栏目
本文是关于织梦DedeCMS调用多级子栏目的,拿来分享下. 后台已经建好栏目,对于产品展示栏 栏目导航如下图所示: 复制代码 代码如下: {dede:channelartlist cacheid=' ...
- C语言基础 (3) C语言介绍
01回顾 02 语言介绍 语言是人和人交流,C语言是人和机器交流. 03_为什么学C语言 04_第一个C代码编译运行 #include <stdio.h> int main() { // ...
- NOIp2018模拟赛三十七
奇怪的一场... 前两题都是全场题,C题明显不可做,我题目都没看懂...(STO lhx OTZ) 成绩:100+100+8=208 貌似十几个208的...A题暴力$O(nmc)$能过...暴力容斥 ...