有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么数组比集合占用更多内存?

为什么数组比集合占用更多内存?是不是因为阵列的内存是在阵列初始化时分配的

当我们需要更好的性能时,建议使用阵列。这是因为数组将元素存储在连续的内存块中吗


共 (1) 个答案

  1. # 1 楼答案

    你的问题有两部分。我将在下面讨论这两个问题

    记忆

    数组并不总是比Collection占用更多内存。数组基本上是按顺序存储一组对象。大多数Collection存储额外的信息。例如,LinkedList存储指向列表中上一个和下一个元素的指针。这意味着LinkedList比数组占用更多空间。然而,数组通常比Collection占用更多的连续空间,因为JVM将尝试在连续内存中分配整个数组,而不需要对所有Collection进行分配

    性能

    至于性能,一切都取决于您对数据的处理。例如,如果您正在访问数据中的一组随机索引,数组将非常快。但是,如果删除数据中的一组随机索引,数组将比^{慢得多。这是因为当从数组中删除一个元素时,右边的所有元素都需要转移。当从LinkedList中删除一个元素时,我们需要做的就是更新两个指针。换句话说,有时数组会比Collection提供更好的性能,有时它会提供更差的性能。这完全取决于你对数据做了什么,以及你在使用什么类型的Collection