作者:qlongjun | 来源:互联网 | 2022-11-28 15:20
我知道,没有任何一件事能够胜任.但我现在需要那些知识.
我有一个字典和一个字符串[].字典中的布尔值只是为了填充空间.让我们想象一下,作为一个库存系统,只是为了让事情变得更容易.
在这个清单中,我想检查一下是否已经有一个项目.所以我要做的是:
if (dic.ContainsKey(item_id)) // That could be a TryGetValue() as well.
{
// Do some logic.
}
但是有一个阵列会更好吗?
if (array.FirstOrDefault(a => a = item_id))
{
// Do magic.
}
我的意思是,在特定情况下哪个会表现得更好?
我知道,这是一个愚蠢的问题,但是当你可以拥有超过一百万(或超过九千,对于DBD粉丝那里的xD)检查时,事情会变得非常沉重,特别是对于移动,VR和具有类似性能的其他人.
另外,我只是希望我的用户能够获得最佳的库存体验(也就是没有延迟),所以我经常考虑这样的东西.
1> Klaus Gütter..:
这里有两个权衡空间和时间.
与数组相比,字典是一种相对较重的结构.
如果基本上独立于条目数O(1),则在Dictionary(或HashSet)中的查找时间,而对于数组,它线性地增加O(N).
因此,有一定数量的项目,其中Dictionary(或HashSet)开始变得相当快.100万肯定超过这个门槛.