Java的Vector.add()和Vector.addElement()之间的区别?

时间:2010-06-22 03:00:14

标签: java collections

请解释Vector.add()方法与Vector.addElement()方法之间的区别,以及示例代码段

5 个答案:

答案 0 :(得分:28)

add()来自List接口,它是Java 1.2中添加的Java Collections Framework的一部分。 Vector早于此,并对其进行了改造。具体差异是:

  1. addElement()synchronizedadd()不是。在Java Collections Framework中,如果您希望同步这些方法,请将该集合包装在Collections.synchronizedList();以及

  2. add()返回成功的布尔值。 addElement()的回复类型为void

  3. 技术上synchronized差异不属于API。这是一个实现细节。

    赞成使用List方法。就像我说的,如果你想要synchronized List做:

    List<String> list = Collections.synchronizedList(new ArrayList<String>());
    list.add("hello");
    

答案 1 :(得分:6)

方法签名不同,add返回true,而addElement为void。

来自http://www.docjar.com/html/api/java/util/Vector.java.html

  153       public synchronized boolean add(E object) {
  154           if (elementCount == elementData.length) {
  155               growByOne();
  156           }
  157           elementData[elementCount++] = object;
  158           modCount++;
  159           return true;
  160       }

223       public synchronized void addElement(E object) {
  224           if (elementCount == elementData.length) {
  225               growByOne();
  226           }
  227           elementData[elementCount++] = object;
  228           modCount++;
  229       }

答案 2 :(得分:5)

javadoc提及:

  

public void addElement(E obj)

     

此方法在功能上与add(E)方法(它是List接口的一部分)相同。

它们都存在的原因是(来自同一个javadoc):

  

从Java 2平台v1.2开始,这个类被改进以实现List接口,使其成为Java Collections Framework的成员。

List有一个add方法,因此向Vector添加了一个实现,但为了保持向后兼容性,addElement未被删除

答案 3 :(得分:1)

<强>的addElement

  

此方法的功能与add(Object)方法(它是List接口的一部分)相同。

所以:

之间没有区别
Vector v = new Vector();
v.addElement( new Object() );

Vector v = new Vector();
v.add( new Object() );

这个类(向量)从Java1.0开始就存在,现在几乎被ArrayList所取代,它的优点是速度稍慢。

答案 4 :(得分:0)

主要区别 - &gt; add()将始终返回true,而addElement()没有返回值。

在dept中: addElement(object)方法在功能上与add(Object)方法(它是List接口的一部分)相同。

add(Object)是因为Vector实现了List接口,它从Java 1.2开始出现,当Vector被移动到集合时:早期版本的集合类Vector和Hashtable已被改进以实现集合接口。

addElement是&#34;原创&#34;矢量法。

在这里找到了这个答案.. What is difference between add() and addElement() in Vector?