Java:来自Set< String>
我有一个简单的集合问题。我有一个 Set< String>
对象。我想要该集合中的字符串的枚举。
I have a simple collections question. I have a Set<String>
object. I want an enumeration of the strings in that set. What is the cleanest/best way to go about it?
编辑:没有必要写你自己的(虽然我'下面的实现将留待后代) - 见Kevin Bourrillion对于JDK中的那个的回答。
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:
Enumeration<String> x = new Vector(set).elements();
最好使用 Iterable< E>
如果可能的话...
It would be better to use Iterable<E>
if at all possible though...
一个更好的替代方法是在 Iterator< E>
。这样,您不必为了找到枚举< E>
的元素而复制一个副本:
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 of Enumeration<E>
:
import java.util.*;
class IteratorEnumeration<E> implements Enumeration<E>
{
private final Iterator<E> iterator;
public IteratorEnumeration(Iterator<E> iterator)
{
this.iterator = iterator;
}
public E nextElement() {
return iterator.next();
}
public boolean hasMoreElements() {
return iterator.hasNext();
}
}
public class Test {
public static void main(String[] args) {
Set<String> set = new HashSet<String>();
Enumeration<String> x = new IteratorEnumeration<String>(set.iterator());
}
}