我接到了一项需要“历史”数组引用的任务。
不确定这是否有正确的名称。
这是一个视觉形式的快速概念。
[NC] == No change to array value
(v1) (v2) (v3) (v4) (Result)
[10] -> [13] -> [12] -> [13] = 13
[5] -> [NC] -> [54] -> [NC] = 54
[6] -> [3] -> [61] -> [30] = 30
[7] -> [3] -> [27] -> [3] = 3
[23] -> [NC] -> [NC] -> [NC] = 23
[41] -> [48] -> [4] -> [48] = 48
[12] -> [NC] -> [2] -> [NC] = 2
我需要能够从某个数组集中提取数据集,例如(伪代码):
int[] results1 = arraySet.get(v2);
System.out.println(results1[1]); // Prints 5
int[] results2 = arraySet.get(v4);
System.out.println(results2[1]); // Prints 54
我必须每秒存储大约 20 个数组集,在过去 5 秒内返回。
因此,内存中有 100 个数组集。
每个数组集将包含大约 200 个值;所以这将相当于相当大的内存消耗。
我对你的问题:
是否已经有一个 Java 实现可以做到这一点,这将允许数组值链接回数组中的旧版本;还是我必须克隆整个数组并更改我需要更改的值?(加上遭受令人讨厌的记忆缺陷)