Java:多次使用Enumeration

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

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

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

不, Enumeration是不可能的。 关于这个主题,java doc说:

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

请注意一次一个,这意味着如果要将Enumeration作为列表进行操作,则必须转换它。 您可以在第一次请求Enumeration时创建一个列表。 这样你就可以随意使用和操纵它。

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