ArrayList就是传说中的动态数组,数组大小会跟随存储和删除数据而变化,所以较之一般数组速度上慢些。
List是一个接口,而ArrayList是一个类,List接口一个有三个实现类,分别是ArrayList、LinkedList和Vector,这三个实现类继承并实现了List。
所以,List list = new List() 这样的写法是不对的。
应该写成 List<E> list = new ArrayList<E>(),在JDK1.5之后就必须要加入泛型了。这句是向上转型,为什么要这么写而不是 ArrayList alist = new ArrayList() 呢?问题就在于List含有多个实现类,现在你用的是ArrayList,也许哪一天要换成其他的实现类,如LinkedList或者Vector的时候,你只需要改变这一行即可。
看如下代码:
import java.util.List;
import java.util.ArrayList;
public class Vana{
public static void main(String[] args){
List
arrayList = new ArrayList
(); //new一个ArrayList的对象,向上转型为List的实现类
arrayList.add("Bonnie"); //往arrayList中增加数据
arrayList.add("I");
arrayList.add("love");
arrayList.add("u");
for(int i = 0;i < arrayList.size();i++){ //arrayList.size()取得arrayList的长度
System.out.print(arrayList.get(i) + " "); //arrayList.get()取得第i个地方的值
}
System.out.println("\n");
arrayList.remove(0); //删除arrayList中第i个数据
arrayList.add("Bonnie");
for(int i = 0;i < arrayList.size();i++){
System.out.print(arrayList.get(i) + " ");
}
}
}
说明对arrayList的操作成功。