Java:Set<String>

2022-08-31 19:40:22

我有一个简单的收藏问题。我有一个 Set<String> 对象。我想要一个枚举<弦> s 在那 .我需要一个,因为我正在重写一个专门返回.最干净/最好的方法是什么?StringSetEnumeration<String>Enumeration<String>


答案 1

java.util.Collections.enumeration(set)

Javadoc

返回对指定集合的枚举。这提供了与需要枚举作为输入的旧版 API 的互操作性。


答案 2

编辑:没有必要写你自己的(尽管我会把下面的实现留给后代) - 参见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());
    }
}