他是List接口的實(shí)現(xiàn)類。ArrayList類相當(dāng)于是一個(gè)動(dòng)態(tài)數(shù)組。
Methods:
1、? void add (Object obj)
往ArrayList的對(duì)象里增加一個(gè)元素
2、?
set
(int?index,
Object
?element)
用指定的元素替代此列表中指定位置上的元素。
3、?
int size
()
獲得ArrayList的對(duì)象中元素的個(gè)數(shù)。
4、?
get
(int index)
返回ArrayList的對(duì)象中索引為index的元素。
5、?
Object
[]
toArray
()
將ArrayList的對(duì)象中的元素返回到一個(gè)對(duì)象數(shù)組中。
PS
:Arrays.asList(Object[] objs);
???
返回一個(gè)受指定數(shù)組支持的固定大小的列表。

?2

?3

?4

?5

?6

?7


?8

?9

10

11

12

13

14

15

16

????
這里的L是通過(guò)Arrays.asList返回一個(gè)接口。這時(shí)候L的長(zhǎng)度就固定不能再變了,不能給L添加元素了。但是可以通過(guò)set方法改變L中指定元素的值。
?????
6、?
iterator()
返回一個(gè)迭代器。所有繼承Collection接口的接口或者這些接口的實(shí)現(xiàn)類,都有這個(gè)方法。通過(guò)List接口對(duì)象返回的迭代器沒(méi)有實(shí)現(xiàn)iterator接口中的remove方法。凡是沒(méi)有實(shí)現(xiàn)iterator接口中的remove方法,都會(huì)拋出一個(gè)
UnsupportedOperationException
(不支持的操作)異常。如:

2

3

4

5

6

7

8

9

PS
:迭代器的作用:
??
他可以以一種通用的方式去訪問(wèn)集合中的所有元素。在ArrayList類中可以通過(guò)get方法去訪問(wèn),但是有些集合的實(shí)現(xiàn)類中并沒(méi)有get方法。而我們知道,所有繼承Collection接口的接口或者這些接口的實(shí)現(xiàn)類,都可以通過(guò)iterator()返回一個(gè)迭代器,那么我們就可以通過(guò)迭代器這種通用的方式去訪問(wèn)集合中的所有元素了。訪問(wèn)方法如下:

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12



13

14

15

ArrayList
底層采用數(shù)組完成,而LinkedList則是以一般的雙向鏈表(double-linked list)完成,其內(nèi)每個(gè)對(duì)象除了數(shù)據(jù)本身外,還有兩個(gè)引用,分別指向前一個(gè)元素和后一個(gè)元素。
如果我們經(jīng)常在List的開(kāi)始處增加元素,或者在List中進(jìn)行插入和刪除操作,我們應(yīng)該使用LinkedList,否則的話,使用ArrayList將更加快速。
這兩個(gè)類都不是同步的,因此他們的效率也比較高。如果要實(shí)現(xiàn)同步,可以使用Vector類,Vector類中有一些繼承的操作,使用的時(shí)候要小心,如果不實(shí)現(xiàn)同步一般都不用Vector類。還可以用Collections類的
synchronized
相關(guān)方法實(shí)現(xiàn)同步,不過(guò)效率沒(méi)有
Vector
類高。