我知道,没有任何一百万个可以成为表演者。但是我现在需要这方面的知识。
我有一个词典和一个字符串[]。字典中的布尔值仅用于填充空格。让我们想象一下,作为一个库存系统只是为了使事情变得简单。
在此库存中,我想检查是否已经获得一件商品。所以我要做的是:
if (dic.ContainsKey(item_id)) // That could be a TryGetValue() as well.
{
// Do some logic.
}
但是拥有一个数组会更好吗?
if (array.FirstOrDefault(a => a = item_id))
{
// Do magic.
}
我的意思是,在特定情况下哪种效果更好?
我知道,这是一个愚蠢的问题,但是当您可以进行超过一百万(对于xD的DBZ粉丝来说,可以超过九千)检查时,事情会变得很繁重,尤其是对于移动设备,VR和其他类似的设备性能。
此外,我只希望我的用户对我的广告资源有最佳的体验(也就是没有滞后),所以我经常考虑使用类似的东西。
答案 0 :(得分:6)
在时间和空间上有两个权衡。
与数组相比,字典是一种相对较重的结构。
如果基本上不依赖条目O(1)的数量,则在Dictionary(或HashSet)中的查找时间,而对于数组,查找时间线性增加O(N)。
因此,在某些项目中,字典(或HashSet)开始变得相当快。一百万肯定高于这个门槛。