比较ArrayList与一般数组
1、一般数组在创建时就必须确定大小
但对干ArrayList来说,你只需要创建出此类型的对象就行。它不需要指定大小,因为它会在加入或删除元素时自动地调整大小。
new String[2]; //需要制定大小 new ArrayList<String> (); //不需要指定大小
2、存放对象给一般数组时必须指定位置
(必须要指定介于0到比length小1之间的数字)
myList[i] = b; //制定索引值
如果索引值超越了数组的限制(例如说声明大小为2的数组,然后指派索引值3),程序会在执行期出现错误(抛出特定的异常)。
使用ArrayList时,你可以用add(int, Object)这个形式的方法来指定索引值,或者使用add(Object)的形式来自行管理大小.
myList.add(b); //不需要索引值
3、一般数组使用特殊的语法
但ArrayList是个普通对象,所以不会有特殊的语法.
myList[1]; //方括号只适用于数组上的特殊语法
4、在Java 5.0中的ArrayList是参数化的
虽然我们说ArrayList不像一般数组有特殊的语法,但是它扪在Java 5.0中有比较特殊的东西——参数化类型。
ArrayList<String>
<String>是类型参数。这代表String的集合,就像说ArrayList<Dog>代表Dog的集合。
在Java 5.0之前是无法声明出要存放于 ArrayList中元素的类型,它只会是异质对象的集合。现在我们就能用上面列出的语法来声明对象的类型。我们会在讨论Collection的章节对参数化类型作更进一步的探讨。