List接口的实现类有三种:ArrayList LinkedList Vector
1.ArrayList:实现了可变的数组,允许保存所有元素,包括null值,并可以根据索引位置对集合进行快速的随机访问,缺点就是向指定的索引位置插入或删除对象时速度比较慢
2.LinkedList:采用链表结构保存对象.这种结构的优点是便于向集合中插入和删除对象,需要往集合中插入和删除对象时,使用LinkedList的效率要比List高,但随机访问时,使用LinkedList的效率较低
3.Vector:也是基于数组的形式保存对象,其与ArrayList不同之处在于以下两点
(1)Vector是线程安全的,也就是同步的,但是ArrayList不是
(2)当需要增长时,Vector默认增长为原来的一倍,而ArrayList默认增长原来的一般容量,从这个角度上来看,ArrayList可以节约内存
public class ArrayListTest { public static void main(String[] args) { List<String>list=new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); //获取0-2的随机数 int j=(int)(Math.random()*list.size()+1); //随机删除某个元素 list.remove(j); for(int i=0;i<list.size();i++){ System.out.println(list.get(i)); } }
public class VectorTest { public static void main(String[] args) { List<String>vector=new Vector<String>(); vector.add("a"); vector.add("b"); vector.add("c"); //获取0-2的随机数 int j=(int)(Math.random()*vector.size()); //随机删除某个元素 vector.remove(j); for(int i=0;i<vector.size();i++){ System.out.println(vector.get(i)); } } }