Java教程-ArrayList和Vector之间的区别

ArrayList和Vector之间的区别
ArrayList和Vector都实现了List接口并保持插入顺序。
然而,ArrayList和Vector之间有许多不同之处,如下所示:
ArrayList | Vector |
---|---|
1) ArrayList不是同步的。 | Vector是同步的。 |
2) 如果元素数量超过其容量,ArrayList会将当前数组大小增加50%。 | 如果元素的总数超过其容量,Vector会将数组大小增加100%,即使是两倍的增长。 |
3) ArrayList不是一个遗留类。它在JDK 1.2中引入。 | Vector是一个遗留类。 |
4) ArrayList是快速的,因为它是非同步的。 | Vector是较慢的,因为它是同步的。在多线程环境中,它会将其他线程保持在可运行或不可运行状态,直到当前线程释放对象的锁。 |
5) ArrayList使用Iterator接口来遍历元素。 | Vector可以使用Iterator接口或Enumeration接口来遍历元素。 |
Java ArrayList示例
让我们看一个简单的示例,其中我们使用ArrayList来存储和遍历元素。
import java.util.*;
class TestArrayList {
public static void main(String args[]) {
List<String> al = new ArrayList<String>(); // 创建ArrayList
al.add("Sonoo"); // 向ArrayList添加对象
al.add("Michael");
al.add("James");
al.add("Andy");
// 使用Iterator遍历元素
Iterator<String> itr = al.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}
输出:
Sonoo
Michael
James
Andy
Java Vector示例
让我们看一个简单的Java Vector类示例,其中使用了Enumeration接口。
import java.util.*;
class TestVector {
public static void main(String args[]) {
Vector<String> v = new Vector<String>(); // 创建Vector
v.add("umesh"); // 使用Collection方法添加元素
v.addElement("irfan"); // 使用Vector方法添加元素
v.addElement("kumar");
// 使用Enumeration遍历元素
Enumeration<String> e = v.elements();
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
}
}
}
输出:
umesh
irfan
kumar