首页 新闻 搜索 专区 学院

求教 C#中List<T>相对HashSet<T>遍历时效率差距很大么

0
[已解决问题] 解决于 2015-06-11 17:00

今天在leetcode上做题,相同的思路,用List<T>每次都超时,而HashSet<T>就可以成功

他俩的差距到底在哪里?

Dranched的主页 Dranched | 初学一级 | 园豆:23
提问于:2015-06-11 15:26
< >
分享
最佳答案
0
List<int> lst = new List<int>();
            lst.Add(1);
            lst.Add(1);

            HashSet<int> hs = new HashSet<int>();
            hs.Add(1);
            hs.Add(1);

            Console.WriteLine("lst:" + lst.Count + "\t hs:" + hs.Count);

HashSet<T> 集合会对加入的数据 distinct ,如果之前已经存在则就不会Add进去了。

都是查找,那么List<T> 没有过滤特性,那么查找的数据量就自然大。

奖励园豆:5
TakeTry | 菜鸟二级 |园豆:238 | 2015-06-11 16:18
其他回答(4)
0

看你怎么用。。

吴瑞祥 | 园豆:29369 (高人七级) | 2015-06-11 15:37

就是for循环把数组元素添加到list中,之后再判定list.Contains()

支持(0) 反对(0) Dranched | 园豆:23 (初学一级) | 2015-06-11 15:49

@Dranched: 保存数据,然后查找?

支持(0) 反对(0) 吴瑞祥 | 园豆:29369 (高人七级) | 2015-06-11 15:59

@吴瑞祥: 差不多吧

支持(0) 反对(0) Dranched | 园豆:23 (初学一级) | 2015-06-11 16:05

@Dranched: list就是个链表,查找只能遍历,hashset本来就是用来做查找的。。当然没有可比性。。。。。

支持(0) 反对(0) 吴瑞祥 | 园豆:29369 (高人七级) | 2015-06-11 16:13
0
爱编程的大叔 | 园豆:30813 (高人七级) | 2015-06-11 16:10
0

线性结构和哈希结构,你说哪个查找效率更高?先熟悉基本数据结构再刷题。

JeffWong | 园豆:2028 (老鸟四级) | 2015-06-11 16:46
0

HashSet=数组+链表,可以兼顾插入效率和随机访问

xmodygetz | 园豆:575 (小虾三级) | 2015-06-11 16:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册