当前位置: 技术问答>CSDN有搞BEA WEBLOGIC相关的兄弟吗?
iis7站长之家
那位兄弟帮我讲解一下Enumeration到底是什么?
来源: 互联网 发布时间:2015-01-24
本文导语: 在java程序中经常看到Enumeration这个东东. 看帮助好像只有两个方法. hasMoreElements() 和 nextElement() 也好像是个虚函数. 可我在java程序中看到Enumeration到处飞, 可以当成一个类型来使用,也可以容纳其他(比如:Vector)类型的...
在java程序中经常看到Enumeration这个东东.
看帮助好像只有两个方法.
hasMoreElements() 和 nextElement()
也好像是个虚函数.
可我在java程序中看到Enumeration到处飞,
可以当成一个类型来使用,也可以容纳其他(比如:Vector)类型的数据
请解惑!谢谢!
看帮助好像只有两个方法.
hasMoreElements() 和 nextElement()
也好像是个虚函数.
可我在java程序中看到Enumeration到处飞,
可以当成一个类型来使用,也可以容纳其他(比如:Vector)类型的数据
请解惑!谢谢!
|
Enumeration这是一个接口,你在Vector等类中看到直接使用它,是因为这些类都直接或间接实现了这个接口(大部分是以内类来实现的)
自已可以这样来实现
public final class TStringList
{
private Vector FVec;
public TStringList()
{
FVec=new Vector (10,5);
}
public Enumeration elements()
{
return new TSLEnum (FVec);
}
final class TSLEnum implements Enumeration
{
private Vector FVec;
private int FCurPos;
public TSLEnum(Vector v)
{
FVec=v;
FCurPos=0;
}
public void ResetCurPos()
{
FCurPos=0;
}
public boolean hasMoreElements()
{
if(FVec.size ()>FCurPos)
return true;
else
return false;
}
public Object nextElement()
{
Object obj=FVec.elementAt (FCurPos);
FCurPos++;
return obj;
}
}
}
自已可以这样来实现
public final class TStringList
{
private Vector FVec;
public TStringList()
{
FVec=new Vector (10,5);
}
public Enumeration elements()
{
return new TSLEnum (FVec);
}
final class TSLEnum implements Enumeration
{
private Vector FVec;
private int FCurPos;
public TSLEnum(Vector v)
{
FVec=v;
FCurPos=0;
}
public void ResetCurPos()
{
FCurPos=0;
}
public boolean hasMoreElements()
{
if(FVec.size ()>FCurPos)
return true;
else
return false;
}
public Object nextElement()
{
Object obj=FVec.elementAt (FCurPos);
FCurPos++;
return obj;
}
}
}
|
这是JDK1.2之前的接口类,主要是用于枚举对象,例如:树的遍历得到的就是Enumeration类型的结果集,可以看做是一个集合容器,当你需要的时候,可以通过其方法nextElement()取得集合容器里的具体对象元素,用hasMoreElements()方法来查询集合容器里是否还有元素对象。
举个例子:
DefaultMutableTreeNodel root=...;//root是JTree视图的根节点
Enumeration df=root.breadthFirstEnumeration(); //prior to breadth search
while(df.hasMoreElements()){
node=(DefaultMutableTreeNode)df.nextElement();
//process your action
}
举个例子:
DefaultMutableTreeNodel root=...;//root是JTree视图的根节点
Enumeration df=root.breadthFirstEnumeration(); //prior to breadth search
while(df.hasMoreElements()){
node=(DefaultMutableTreeNode)df.nextElement();
//process your action
}
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。