Java 枚举接口与向量类
我对向量类的枚举接口深感困惑。我知道现在已经有好几天没有用于存储和搜索的软件了,但我仍然对它们感兴趣 我知道的事实:Java 枚举接口与向量类,java,oop,vector,enumeration,Java,Oop,Vector,Enumeration,我对向量类的枚举接口深感困惑。我知道现在已经有好几天没有用于存储和搜索的软件了,但我仍然对它们感兴趣 我知道的事实: Vector类实现枚举接口,因此它的方法hasMoreElements()和nextElement() Vector类有一个方法elements(),该方法返回Vector类的对象,因此其返回类型为枚举 我感到困惑的是: 假设向量vec=新向量(2,3); vec.elements() Vecotr类不实现枚举。你在哪里看到的,你能分享你的信息来源吗 public class V
hasMoreElements()
和nextElement()
elements()
,该方法返回Vector类的对象,因此其返回类型为枚举向量vec=新向量(2,3)
;
vec.elements() Vecotr
类不实现枚举
。你在哪里看到的,你能分享你的信息来源吗
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
公共类向量
扩展抽象列表
实现列表、随机访问、可克隆、java.io.Serializable
此外,该类或接口中并没有一个实现或扩展枚举接口。该类显示该类中实现的接口是可序列化、可克隆、可编辑、集合、列表、随机访问
向量的elements()
方法签名是:public Enumeration elements()
调用
它返回已实现枚举的实例,从以下源代码中可以明显看出:
public Enumeration<E> elements() {
return new Enumeration<E>() { // return implemented enumeration
int count = 0;
public boolean hasMoreElements() {
return count < elementCount;
}
public E nextElement() { // implementing nextElement
synchronized (Vector.this) {
if (count < elementCount) {
return elementData(count++);
// accessing vector elements data which
//traverses an array of object
}
}
throw new NoSuchElementException("Vector Enumeration");
}
};
}
公共枚举元素(){
return new Enumeration(){//return implemented Enumeration
整数计数=0;
公共布尔值hasMoreElements(){
返回计数<元素计数;
}
公共电子nextElement(){//实现nextElement
同步(Vector.this){
如果(计数<元素计数){
返回元素数据(count++);
//访问向量元素数据
//遍历对象数组
}
}
抛出新的NoTouchElementException(“向量枚举”);
}
};
}
你在哪里看到向量
实现了枚举
?我在一本书中读过它。如果不是这样的话,那你怎么会有枚举向量呢?向量在1998年被ArrayList取代了。如果你真的感兴趣,你应该能够通过阅读代码来回答你自己的问题。如果不是这样,那么这行枚举vec.elements()的意义是什么,这意味着Vector类的elements方法将返回枚举对象。就是这样。@chetanmehta,我已经向您展示了elements()
函数是如何工作的。