在Java中,有Arrays和ArrayLists。
// Creation of Array of length 3
Object[] array = new Object[3];
// Creation of ArrayList
ArrayList<Object> arrayList = new ArrayList<>();
根据我的发现,Arrays和ArrayLists之间存在某些差异。例如,可以轻松地将一个条目添加到ArrayList中,但不能添加数组。
我发现的另一个不同之处是ArrayList不能包含基元。 为什么这很重要,因为我可以轻松地将int转换为Integer对象?
int[] array = {1,2,3}; // Can't add another entry.
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(4); // Dynamic in size
根据我的Google搜索,使用ArrayLists而不是普通数组有很多好处,但是 ArrayLists的缺点是什么?在什么情况下应该使用Array而不是ArrayList?另外,如果没有使用ArrayLists的缺点,为什么Java开发人员没有用ArrayLists替换数组?
非常感谢任何解释。
答案 0 :(得分:2)
在我看来,使用ArrayList
而不是原始数组的主要优点是它的无限大小,它的API方法和Java 1.5,它使用泛型。 ArrayList
由原始数组支持,所以从技术上讲,如果你想自己维护一大堆代码,你就可以使用一个原始数组,但为什么你要这样做,当您可能正在寻找的是开箱即用的?此外,由于ArrayList
是Collection
,其中包括(List
等),它可以为您提供丰富的图书馆功能,包括本地和第三方。
当你需要的只是一个原始数组(EG你想要一个固定长度的数据结构,不需要泛型,不需要任何API功能)时使用ArrayList
的缺点是它更贵创建和维护。