【问题标题】:Java: use Enumeration multiple timesJava:多次使用枚举
【发布时间】:2025-11-29 12:50:01
【问题描述】:

我使用 DefaultMutableTreeNode,它有方法 depthFirstEnumeration()breadthFirstEnumeration()children(),它们返回树节点的 Enumeration

我需要多次使用返回的Enumeration,但是在Enumeration中找不到像reset()这样的方法。好像只能一次获取所有元素,然后再次调用depthFirstEnumeration()获取新的Enumeration,似乎不是一个好的解决方案。

当然,我可以从Enumeration 获取所有元素并将其转换为任何其他可重用的表示,但真的有办法多次使用Enumeration 吗?

【问题讨论】:

    标签: java enumeration


    【解决方案1】:

    不,Enumeration 不可能做到这一点。关于这个问题,java doc 说:

    实现Enumeration接口的对象生成一系列 元素,一次一个。

    注意一次一个,这意味着如果您想将Enumeration 作为一个列表进行操作,那么您必须对其进行转换。 您可以在首次请求Enumeration 时创建一个列表。这样您就可以随心所欲地使用和操作它。

    Enumeration e = ...
    ArrayList aList = Collections.list(e);
    

    【讨论】: