在当前版本的Swift中,方法indexOf
显然是线性时间。如果我的数组很大而且我需要经常调用indexOf
,这几乎没用。我们如何将Array
子类化为:
我想将这个数组用于UITableView。我想过使用字典,但是
我只想使用Array.indexOf
的固定常数版本。
答案 0 :(得分:1)
不要将Array子类化。创建一个同时包含Array和Dictionary作为实例变量的新类。使用数组进行排序,使用字典从项目到数组索引进行映射。您必须编写自己的例程进行插入,查找和删除。如果对键和值使用泛型类型,则该类将来在其他项目中很有用。几年前我在Objective-C项目中做过这个(没有泛型)。
我想的越多,我认为你应该越多地使用树,因为如果你从数组的中间插入或删除项目,你的字典索引将会关闭。树结构将保留两个顺序并允许合理快速查找。