答案 1
一些要点:
如果你有一些“遗留”库,那么你就绑定到他们使用的类型。这可以是数组。
如果处理本机代码,则数组将是与本机代码交换数据的更自然的方式。
如果您访问二进制数据(例如声音文件或类似文件),则使用数组可能会有所帮助。
如果您处理大量的二进制数据,那么数组可能会更有效。
因此,数组可能有用的原因有很多(特别是对于基元类型)。
如果只处理对象,则大多数情况下使用 .List
答案 2
我会说Bloch意味着方便而不是必要,数组是更简单的结构,更容易处理。
作为一种数据结构,从功能的角度来看,可以与数组互换。ArrayList
数组显然在内存方面更精简,但需要额外的努力来获得一些基本功能(即,当原始数组不够大以容纳新元素时,手动调整数组大小),但运行时(类)已经提供了其他功能。Arrays
ArrayLists
由实际数组支持,因此对于搜索和排序等常见操作(使用相同的算法时),性能方面没有太大差异。Object
推荐
-
-
为什么 Array.newInstance(Class<?>, int) 不是通用的? 我的意思是,这有什么好的理由吗?该具有以下签名: 是否有任何充分的理由将返回值类型声明为 ?对我来说,这似乎非常不方便。
-
-
为什么我可以收集任意大数组的并行流,但不能收集顺序流? 在回答时,我遇到了一个奇特的功能。下面的代码按照我的假设工作(现有数组中的前两个值将被覆盖): 我很好奇为什么顺序流不会像并行流那样覆盖数组的元素。我搜索了一下,无法找到
-
Java JNI 调用的开销 首先让我说,这个问题更多的是出于好奇心,而不是真正的必要性。 我很想知道从Java执行JNI调用的开销是多少,比如说,与分配数组并使用for循环复制元素相比。 如果开销很大