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

2022-09-02 19:59:11

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


答案 1

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

  1. addElement()是。 不是。在 Java 集合框架中,如果要同步这些方法,请将集合包装在 ;和synchronizedadd()Collections.synchronizedList()

  2. add()返回一个布尔值表示成功。 具有返回类型。addElement()void

从技术上讲,这种差异不是API的一部分。这是一个实现细节。synchronized

赞成使用这些方法。就像我说的,如果你想做:ListsynchronizedList

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

答案 2

方法签名不同,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       }