It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened,
visit the help center。
已关闭10年。
我想知道数组的弱点是什么。我认为知道这对于确定数组是在特定情况下存储数据或预测执行时间的最佳方式是非常有帮助的。
编辑1:根据我所理解的数组进行澄清:
不是有限,而是固定大小的存储,用作顺序数据容器,它们是可变。 1个或多个索引用于引用特定的数据容器。
如果类型为原始,则包含的数据必须为且类型为。
包含的数据必须是相同的数据类型或该类型的后代,如果类型是对象(这是多态性),则这种类型的转换也是,也窄于宽泛的 。
Java中的所有数组都是一维数组。
交换其索引为的元素或查找元素是快速操作
添加/删除元素是缓慢的操作,因为数组是重新创建的
元素类型在运行时是强制的,这称为数组化。
Java数组方法位于java.util.Arrays
中,甚至不包含基本的数组操作方法,例如 union 和交集。可悲的是, Guava 库不是标准Java的一部分。
对象数组中填充了,引用指向数据实际所在的存储位置。
数组的数组称为二维数组。
2d数组第一个数组由引用填充到其他数组组成。 其他数组未顺序存储。 其他数组的元素大小可能有所不同,这称为参差不齐的-和参差不齐的数组。 Java数组具有行优先顺序。 数组维度通常为,限制为255 ,但因实现而异。 异常和重要说明。
在托管内存环境中,数据元素的绝对位置可以是顺序的,但很可能不是。 直接使用的数组不能是线程安全的,不可变的或具有事务完整性,因此,没有直接方法可以使用并行。
如果需要查找排序数组中是否包含特定数据,则可以使用二进制搜索,这并不比 hashset慢多少。包含,我假设使用 VMMemoryManager.getIdentityHash代码,基本上就是学校调制演算,以及可能发生碰撞的地方。
Java 泛型只是编译器魔术,但是如果要对数组使用 Java泛型,则不能使用基本类型。
在Java 6中, Collections.sort()的工作原理类似于:-将数据转储到数组中,并...-那时的内存差是x2倍。
垃圾收集器确实不喜欢数组,您通常会以上一代结束,并且不会很快被释放。
在数组中输入大数据元素是一个坏主意,但我不记得为什么。
在我看来,数组是存储数据的最佳方法之一,只是不能直接存储。有时,我的头似乎像个垃圾桶,那里的知识是畸形的。这就是我问这个问题的原因之一-确认我所知道的。
我是一名优秀的程序员,十分优秀!