我有一个大约 1176^3 个位置的列表。做某事
val x = list.length
需要几个小时..
当列表中的位置是 1271256 时是可以的,只需几秒钟。有人知道如何加快速度吗?
我有一个大约 1176^3 个位置的列表。做某事
val x = list.length
需要几个小时..
当列表中的位置是 1271256 时是可以的,只需几秒钟。有人知道如何加快速度吗?
List
长度操作可能是错误的数据结构,因为它是 O(n) - 完成列表越长,完成所需的时间就越长。
如果您需要调用Vectorlength
可能是一种更好的数据结构,因为它的存储支持有限时间内的随机访问。
当然,这并不意味着 List 结构不好使用,只是在这种情况下它可能不是更可取的。
为了增加 gpampara 的答案,在这种情况下,您实际上可以证明使用数组是合理的,因为它具有最低的存储每个项目的开销和 O(1) 访问元素和长度确定(因为它记录在数组标题本身)。
数组有很多缺点,但我认为当内存开销是主要考虑因素时(并且当创建时已知大小的固定大小集合是可行的)时它是合理的。