循环通过一组对象

时间:2011-08-01 19:56:13

标签: java loops complexity-theory treemap

我有一个巨大的键值对映射,大约10 ^ 7,我必须每秒循环15次才能更新其内容 是否有任何类或结构能够提供良好的复杂性并缩短循环所需的时间?

目前,我使用 TreeMap ,但复杂性 log n 仅适用于contains,put,get和remove。循环使用元素是非常复杂的

你知道任何结构,或者你有什么想法可以降低低于n 的复杂性吗?

2 个答案:

答案 0 :(得分:5)

如果你必须在整个集合中任意循环,你将不会比n更好。如果必须循环整个集合,则可以使用简单的ArrayList。但是如果你需要使用密钥访问集合中的特定数据,TreeMap就可以了。

答案 1 :(得分:0)

如果您的问题只是查看所有O(n)值,那么您无法击败任何顺序(或有限并行)计算机上的O(n)界限。

如果你有一台有限并行的机器,并且根据你如何更新元素,你可以实现加速。例如,使用CUDA和GPU或OpenMP / MPI以及群集/多核工作站,您可以计算A [i] = A [i] ^ 3或其他一些具有良好加速的工作站。当然,那就是沟通的问题......但这可能是值得关注的问题。