数组和数组列表 - 优点和缺点

时间:2015-01-08 19:12:12

标签: java arrays arraylist

在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替换数组?

非常感谢任何解释。

1 个答案:

答案 0 :(得分:2)

在我看来,使用ArrayList而不是原始数组的主要优点是它的无限大小,它的API方法和Java 1.5,它使用泛型。 ArrayList由原始数组支持,所以从技术上讲,如果你想自己维护一大堆代码,你就可以使用一个原始数组,但为什么你要这样做,当您可能正在寻找的是开箱即​​用的?此外,由于ArrayListCollection,其中包括(List等),它可以为您提供丰富的图书馆功能,包括本地和第三方。

当你需要的只是一个原始数组(EG你想要一个固定长度的数据结构,不需要泛型,不需要任何API功能)时使用ArrayList的缺点是它更贵创建和维护。