小编典典

Java:从Set枚举

java

我有一个简单的收藏问题。我有一个Set<String>对象。我想要一个Enumeration<String>的的String中,且s
Set。我需要一个,Enumeration<String>因为我要覆盖专门返回的方法Enumeration<String>。最干净/最好的方法是什么?


阅读 225

收藏
2020-11-16

共1个答案

小编典典

编辑:无需编写自己的(尽管为了后代,我将在下面保留实现)-请参见Kevin Bourrillion在JDK中的答案。


如果您 确实 需要枚举,可以使用:

Enumeration<String> x = new Vector(set).elements();

Iterable<E>如果可能的话,最好使用…

更好的选择是在周围编写一个小型包装器类Iterator<E>。这样一来,您不必为了发现以下内容而进行复制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());
    }
}
2020-11-16