.net集合类的研究--哈希表(二)--HashSet

HashSet<T>作为.NET 3.5后引入的集合,以其哈希算法提供高效的查询性能。与Dictionary<TKey,TValue>和Hashtable不同,它专注于值的存储而非键值对。HashSet<T>提供了交集、并集、排除等Set运算,但不支持下标访问。通过扩展方法,泛型集合也能实现类似操作,然而HashSet<T>在不修改原始集合的情况下进行操作,更适合特定场景。" 120356547,10465573,Java编程:深入理解类与对象——修饰符与静态关键词,"['Java', '类与对象', '修饰符', '静态成员']
摘要由CSDN通过智能技术生成

.Net3.5之后出现了HashSet<T>,硬翻译过来就是“哈希集合”,跟“哈希”两字挂钩说明这种集合的内部实现用到了哈希算法,用Reflector工具就可以发现,HashSet<T>和Dictionary<TKey,TValue>使用了相同的存储方式和哈希冲突算法,那么,它跟Dictionary<TKey,TValue>和Hashtable在使用上到底有什么不同?

HashSet<T>对集合运算的操作

HashSet<T>是一个Set集合,虽然List、Collection也叫集合,但Set集合和它们却大有不同。

HashSet<T>提供了和“Set集合运算”相关的方法,如:

IntersectWith (IEnumerable<T> other) (交集)

public void IntersectWithTest()   
        {   
            HashSet<int> set1 = new HashSet<int>() { 1, 2, 3 };   
            HashSet<int> set2 = new HashSet<int>() { 2, 3, 4 };   
       
            set1.IntersectWith(set2);   
       
            foreach (var item in set1)   
            {   
                Console.WriteLine(item);   
            }   
       
            //输出:2,3   
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值