Java:来自 Set 的枚举
我有一个简单的集合问题。我有一个 设置
对象。我想要一个 Set 中
。我需要一个 String
的枚举Enumeration
因为我要重写专门返回 Enumeration
的方法。最干净/最好的方法是什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
<代码>java.util.Collections.enumeration(set)
Javadoc
java.util.Collections.enumeration(set)
Javadoc
编辑:没有必要编写你自己的(尽管我将把下面的实现留给后代) - 请参阅 Kevin Bourrillion 的回答对于 JDK 中的那个。
如果您确实需要枚举,可以使用:
如果可能的话,最好使用
Iterable
...更好的选择是编写一个围绕
Iterator
的小包装类。这样您就不必仅仅为了查找Enumeration
的实现而获取副本:EDIT: There's no need to write your own (although I'll leave the implementation below for posterity) - see Kevin Bourrillion's answer for the one in the JDK.
If you really need an enumeration, could could use:
It would be better to use
Iterable<E>
if at all possible though...A better alternative is to write a small wrapper class around
Iterator<E>
. That way you don't have to take a copy just to find an imlementation ofEnumeration<E>
:假设您指的是数学意义上的枚举,最简洁的方法是通过 for 循环,适用于任何实现
Iterable
的类:如果您确实需要
Enumeration
,您可以实现一个适配器类来包装通过调用iterator()
返回的Iterator
。 Apache Collections 库中有一个适配器类:IteratorEnumeration
。或者你可以使用 Google 的 Guava 库:
Assuming you mean enumeration in the mathematical sense the cleanest way to do this is via a for-loop, applicable to any class that implements
Iterable
:If you really require an
Enumeration
you could implement an adapter class to wrap theIterator
returned by callingiterator()
. There is an adapter class in the Apache Collections library:IteratorEnumeration
.Or you could use Google's Guava library: