您的位置:首页 > 其它

集合框架Collection之list接口

2016-09-29 15:04 357 查看
list三种实现类的比较

ArrayList Vector LinkedList区别

存储方式

1.ArrayList 和Vector是采用数组方式存储数据,

Arraylist的内存结构是数组,当超出数组大小时创建一个新的数组,吧原数组中元素拷贝过去。其本质是顺序存储的线性表,插入和删除操作会引发后续元素移动,效率低,但是随机访问效率高

vector(同步)采用的是synchronized方法(线程安全)所以性能上比ArrayList要差

2.Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%

3.LinkedList使用双向链表实现存储,

LinkedList的内存结构是用双向链表存储的,链式存储结构插入和删除效率高,不需要移动。但是随机访问效率低,需要从头开始向后依次访问

性能上:

vector(同步)采用的是synchronized方法(线程安全)所以性能上比ArrayList要差

LinkedList(非同步)没有同步方法

ArrayList(非同步)没有同步方法

我们在来看看各个实现类的常用操作

Vector实现类

//Vector的crud
import java.util.List;
import java.util.Vector;

public class VectorDemo {
public static void main(String[] args) {
List<A> list = new Vector<A>() ;

A a1=new A(1,"haha");
A a2=new A(2,"haha");
// 向列表的尾部追加指定的元素
list.add(a1);
list.add(a2);
//修改
list.set(1, a1);
//删除
//      list.remove(a2);
//获取指定对象
System.out.println(list.get(0).toString());
//遍历
for (A a : list) {
System.out.println(a.toString());
}
}
}
class A{
int i;
String b;
public A(int j, String string) {
i=j;
b=string;
}
@Override
public String toString() {
return "a [i=" + i + ", b=" + b + "]";
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arraylist
相关文章推荐