java - arrayList 大小的差异

标签 java

如果我有一个 Java 对象的 ArrayList,底层实现真的只是一个对象引用数组吗?我正在创建这个方法:

//method returns all combinations of Objects
public ArrayList<ArrayList<Object>> getAllCombinations(ArrayList<Object> allObjects){

}

当我开始思考这个问题时,我想知道是否可以返回 ArrayList<ArrayList<Integer>>其中整数是 allObjects 中的位置(本质上认为这会使用更少的内存)。但后来我开始认为数组实现的每个值只是指向 中对象的内存位置,并且数组没有为我正在创建的每个 ArrayList 创建新对象(这肯定会使用更多内存)。所以实际上,如果我只实现上面提到的方法,它会使用大约相同的内存,对吗?

我想我需要更好地理解Java的内存分配......

最佳答案

是的,数组或数组列表仅包含对对象的引用,而不包含对象本身。因此,无论底层对象的大小如何,数组中的每个项目都使用 4 字节内存(在 32 位计算机上)。

所以保持简单并返回任何有意义的内容。

关于java - arrayList 大小的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16847474/

相关文章:

java - doPrivileged 和 java applet 沙箱

java - 使用 Java 处理 Excel 特殊字符

java - 数据库值插入错误

java - 无法安装通用编解码器 jar 文件

java - 图像导出 DayPilot 调度程序

java - 如何将数据从 Activity 传递到抽屉导航 Android 内的 fragment

java - 由于错误而无法启动基本应用程序(UnsupportedOperationException : Can't convert to dimension: type=0x1)

java sockets - 跟踪应用程序已经创建了多少个套接字文件

java - jackson :@JsonIdentityInfo 对象而不是 id

java - Android 和 data.gov