Java中的arrayList是数组还是列表?

时间:2014-01-30 17:51:53

标签: java arrays list arraylist

最近我在一个Java程序中使用arrayLists,我必须为学校写作。我只是想知道;是一个arrayList数组或列表,还是两者兼而有之?

5 个答案:

答案 0 :(得分:7)

你问:

  

是一个arrayList,一个数组或一个列表,还是两个?


是一个通过继承的List,它是编写的数组。


它实现了java.util.List<T>接口,因此通过了“is-a”测试。这意味着您可以使用List执行任何操作,包括调用所有List公共方法,您可以使用ArrayList。

它的数据模型由数组支持,因此它包含一个数组。因此,这意味着虽然它具有从底层数组获得的一些类似数组的行为,但您无法直接调用数组方法或获取数组字段。例如,您无法使用数组索引从ArrayList获取项目。即,这不起作用:myArrayList[i],但您可以通过ArrayList的get(int i)方法间接调用它。此外,您无法从中获取length字段,但您可以通过其size()方法间接获取该字段。另请注意,从ArrayList获取数据将遵循与数组相同的限制大O行为。

答案 1 :(得分:3)

ArrayList实现List接口

请参阅doc:http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

如果你看一下ArrayList内部实现,你会发现它包裹在一个数组中。

以下是您的参考实施:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/ArrayList.java

例如,这里有一个构造函数实现:

创建具有初始容量

的新ArrayList时
public More ...ArrayList(int initialCapacity) {
         super();
        if (initialCapacity < 0)
            throw new IllegalArgumentException("Illegal Capacity: "+
                                                initialCapacity);
        this.elementData = new Object[initialCapacity];
     }

答案 2 :(得分:0)

ArrayList是List的实现,由数组支持 支持所有可选操作,包括添加,删除和替换元素。

允许所有元素,包括null。

10 examples of using ArrayList in java

答案 3 :(得分:0)

ArrayList来自List接口

enter image description here

答案 4 :(得分:0)

ArrayList是一个实现List接口的对象。

与数组不同,您可以比传统数组更容易添加/删除/获取元素。 ArrayLists没有大小限制,因此您可以在列表中放置更大的元素列表。

此类在后台操作具有默认大小的数组,因此如果需要删除或添加元素,它会创建数组的新副本(如果需要,可以使用更大的大小)并添加到数组对象中。 / p>