2012-05-05 54 views
3

我與DefaultMutableTreeNode一起工作,它具有返回Enumeration樹節點的方法depthFirstEnumeration(),breadthFirstEnumeration()children()Java:多次使用枚舉

我需要多次使用返回的Enumeration,但我找不到Enumeration中的reset()之類的任何方法。似乎我只能得到所有元素一次,然後再次撥打depthFirstEnumeration()獲得新的Enumeration,這似乎不是一個好的解決方案。

當然,我可以從Enumeration獲取所有元素並將其轉換爲任何其他可重複使用的表示形式,但真的有多種方法可以使用Enumeration多次?

回答

5

沒有這不可能與Enumeration。在這個問題上,java doc說:

實現枚舉接口的對象會一次生成一個元素系列 。

通知的一次一個這意味着如果你想操縱Enumeration作爲一個列表,那麼你將不得不轉換。 當您第一次請求Enumeration時,您可以創建一個列表。不管您希望如何,您都可以使用和操作它。

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