在学习编程时,我认为我偶然发现了Scala的效率低下,因为我们的资料中的描述是正确的。我的一个朋友在国际信息学奥林匹克大会上获得了银牌和铜牌,证实了更轻松实施的可能性。
在我们的学习材料中,其内容为:“例如,对于ArrayBuffer,在末尾追加元素非常有效:由于内部数组的大小始终加倍,因此很少分配和复制到新数组。相比之下,在元素的开头添加元素会很耗时,因为会分配一个新的内部数组,并且每次调用该方法时都会将元素复制到该元素。”
是否存在另一个存储索引的数组,以便始终将元素添加到末尾?
答案 0 :(得分:1)
可能会有第二个包含索引的数组,但是由于许多原因,效率会降低:
索引数组将需要额外的存储空间
访问元素至少需要两次内存读取,而不是一次。
如果不对索引进行排序,则每次访问都需要搜索索引数组
如果对索引进行排序,则该数组存在与原始数组完全相同的问题。