ArrayList LinkedList Vector

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));
		}
	}
}

猜你喜欢

转载自201407105131.iteye.com/blog/2200066