List 列表在算法上什么时候比地图快?

List 列表在算法上什么时候比地图快?,list,dictionary,complexity-theory,List,Dictionary,Complexity Theory,我认为这是一个有效的问题,因为如果你使用一个以整数为键的映射,你会有一个类似于列表的结构。可以使用for循环按顺序读取元素: for i in 1,..., map.length(): if i in map: doSomething(map[i]) 此外,在列表中插入和读取元素是O(n),而在映射中插入和读取元素是O(1)。 在什么情况下,列表比地图快? 如果我们关心代码的运行速度,那么在什么情况下列表不会比映射更糟糕?在这种情况下,我们应该一直使用地图吗 用映射实现

我认为这是一个有效的问题,因为如果你使用一个以整数为键的映射,你会有一个类似于列表的结构。可以使用for循环按顺序读取元素:

for i in 1,..., map.length():
    if i in map:
        doSomething(map[i])
此外,在列表中插入和读取元素是O(n),而在映射中插入和读取元素是O(1)。 在什么情况下,列表比地图快? 如果我们关心代码的运行速度,那么在什么情况下列表不会比映射更糟糕?在这种情况下,我们应该一直使用地图吗


用映射实现的列表不是更好的列表吗?

我认为从根本上说,列表是哈希映射的一种特殊实现。因此,地图只能比列表更好。从理论复杂性的角度来看。

也许我完全没有回答你的问题(现在是凌晨3点,所以我的大脑状况不太好),但是。。。列表的全部要点不是可以a)从列表的中间删除元素,b)在列表的中间插入元素(没有附加代码的映射都不可能实现这两种功能)?如果你只需要一个int到任何一个映射,很好,这正是你应该使用的。但这不是列表的目的。