最近我在一个Java程序中使用arrayLists,我必须为学校写作。我只是想知道;是一个arrayList数组或列表,还是两者兼而有之?
答案 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内部实现,你会发现它包裹在一个数组中。
例如,这里有一个构造函数实现:
创建具有初始容量
的新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。
答案 3 :(得分:0)
ArrayList
来自List
接口
答案 4 :(得分:0)
ArrayList是一个实现List接口的对象。
与数组不同,您可以比传统数组更容易添加/删除/获取元素。 ArrayLists没有大小限制,因此您可以在列表中放置更大的元素列表。
此类在后台操作具有默认大小的数组,因此如果需要删除或添加元素,它会创建数组的新副本(如果需要,可以使用更大的大小)并添加到数组对象中。 / p>