请解释Vector.add()方法和Vector.addElement()方法之间的区别,以及示例代码段
cle*_*tus 28
add()来自List接口,它是Java 1.2中添加的Java Collections Framework的一部分.Vector比这更早,并用它进行改造.具体差异是:
addElement()是synchronized.add()不是.在Java Collections Framework中,如果要将这些方法同步包装在集合中Collections.synchronizedList(); 和
add()返回成功的布尔值.addElement()有一个void返回类型.
synchronized技术上的差异不是API的一部分.这是一个实现细节.
赞成使用这些List方法.就像我说的,如果你想做一synchronized List件事:
List<String> list = Collections.synchronizedList(new ArrayList<String>());
list.add("hello");
Run Code Online (Sandbox Code Playgroud)
方法签名不同,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 }
Run Code Online (Sandbox Code Playgroud)
和
223 public synchronized void addElement(E object) {
224 if (elementCount == elementData.length) {
225 growByOne();
226 }
227 elementData[elementCount++] = object;
228 modCount++;
229 }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24787 次 |
| 最近记录: |