我无法理解在矢量类中使用的同步背后的实际概念,请回答。
因为昨天,我使用了一个比数组列表好得多的向量。所以我在这里有点困惑。
import java.util.Vector;
public class VectorExample {
public static void main(String[] args) {
Vector<String> vc=new Vector<String>();
// <E> Element type of Vector e.g. String, Integer, Object ...
// add vector elements
vc.add("Vector Object 1");
vc.add("Vector Object 2");
vc.add("Vector Object 3");
vc.add("Vector Object 4");
vc.add("Vector Object 5");
// add vector element at index
vc.add(3, "Element at fix position");
// vc.size() inform number of elements in Vector
System.out.println("Vector Size :"+vc.size());
// get elements of Vector
for(int i=0;i<vc.size();i++)
{
System.out.println("Vector Element "+i+" :"+vc.get(i));
}
}
}
答案 0 :(得分:1)
嗯,如你所知,Vector是ArrayList的一个爷爷,自JDK 1.0以来一直存在。
如果您阅读JavaDoc,Java本身建议限制使用Vector
从Java 2平台v1.2开始,这个类被改装为 实现List接口,使其成为Java的成员 馆藏框架。与新的集合实现不同, 矢量是同步的。 如果不需要线程安全的实现, 建议使用ArrayList代替Vector 。
答案 1 :(得分:0)
内部实现ArrayList&amp;矢量是一样的。两者都在后端使用数组到数据。
所有公共方法都是同步的。因此,性能明智的慢。这是一个非常古老的实现。
除了Vector。中可用的setSize
方法。
根据JavaDoc
Sets the size of this vector. If the new size is greater than the current size, new null items are added to the end of the vector. If the new size is less than the current size, all components at index newSize and greater are discarded.