# ArrarList
---
* æ¯ä¸ä¸ªç±»
* å®ç°çæ¥å£ï¼ListãCollectinãIterableãSerializableãCloneableãRandomAccess
* åç±»ï¼AttributeListãRoleListãRoleUnresolvedList
##ç®ä»
---
* 宿¯é¡ºåºè¡¨
* 大å°å¯å
* å
许nullå
ç´
* å¯LinkedList䏿 ·ï¼ä¸å
·å¤çº¿ç¨åæ¥çå®å
¨æ§ãä½é度è¾å¿«
* ç¬¬ä¸æ¬¡å®ä¹çæ¶å没ææå®æ°ç»çé¿åº¦åé¿åº¦æ¯0ï¼å¨ç¬¬ä¸æ¬¡æ·»å çæ¶å夿妿æ¯ç©ºå追å 10ã
##容鿝å¦ä½ååç
---
卿ºç ä¸ï¼
```
private transient Object[] elementData;
```
ç¨äºä¿å对象ãå®ä¼éçå
ç´ çæ·»å èæ¹å大å°ãå¨ä¸é¢çåè¿°ä¸ï¼å®¹éæçæ¯elementData.lengthï¼è䏿¯sizeã
>size䏿¯å®¹éï¼ArrayList对象å ç¨çå
å䏿¯ç±sizeå³å®çã
>sizeç大å°å¨æ¯æ¬¡è°ç¨add(E e)æ¹æ³æ¶å 1ã
>妿æ¯è°ç¨ArrayList(Collection extends E> c)æé æ¹æ³ï¼åsizeçåå§å¼ä¸ºc
* 妿å¨åå§åæ¶ï¼æ²¡ææå®å¤§å°ï¼å容é大å°ä¸º0ã
* å½å¤§å°ä¸º0æ¶ï¼ç¬¬ä¸æ¬¡æ·»å å
ç´ å®¹é大å°å为10ã
* ä¹åæ¯æ¬¡æ·»å æ¶ï¼ä¼å
ç¡®ä¿å®¹éæ¯å¦å¤ç¨
* 妿ä¸å¤ç¨ï¼æ¯æ¬¡å¢å ç容é为 newCapacity = oldCapacity + (oldCapacity >> 1)ï¼å³ï¼æ¯æ¬¡å¢å ä¸ºåæ¥ç1.5åã
##åVectorçåºå«
---
* Vector线ç¨å®å
¨
* ArrayList线ç¨ä¸å®å
¨ï¼é度快
##åLinkedListçåºå«
---
* ArrayListæ¯é¡ºåºè¡¨ï¼LinkedListæ¯é¾è¡¨
* ArrayListæ¥æ¾ï¼ä¿®æ¹æ¹ä¾¿ï¼LinkedListæ·»å ãå 餿¹ä¾¿
##æ¹æ³
---
**void ensureCapacity(int minCapacity)**
设置容éè½å®¹çº³ä¸minCapacity个å
ç´
* 妿