我在Java中有一个数组int[] A = new int[100000]
,我想创建数百万个A
子数组。在C ++中,我将使用指针数组。我可以创建ArrayList<Integer> subA
并存储对A
元素的引用,这样我就不会消耗太多内存。
目前,我确实创建了int[] subA = new int[some value less than A.length]
对象,该对象非常昂贵并且会耗尽内存。
最佳答案
List.subList()
这样做:它在原始列表上创建一个视图。您可能会使用它来节省内存,因为子列表只有以下4个字段:
引用外部列表
抵销
尺寸
modCount
因此,每个子列表将消耗大约20个字节。