当前位置: 首页 > 面试题库 >

Java:从Set枚举

丰佐
2023-03-14
问题内容

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


问题答案:

编辑:无需编写自己的(尽管为了后代,我将在下面保留实现)-请参见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());
    }
}


 类似资料:
  • 我有一个接口和枚举,如下所示: 现在,为了调用,我创建了一个包含所有元素的枚举集,因此执行以下操作:

  • 问题内容: 我们使用Jackson 1.9.1对与Java对象之间的JSON请求响应字符串进行序列化和反序列化。原始Java类型,集合类型和自定义对象都可以(反)序列化而不会出现问题。但是,尝试将JSON字符串反序列化为Java枚举时遇到问题。JSON字符串的序列化方式如下: wt的Java类型如下所示: 我在SO上提到了this,this和this,并提出了重量单位的枚举,如下所示: 问题是,每

  • 主要内容:声明枚举,枚举类,为枚举添加方法,EnumMap 与 EnumSet枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男”或者“女”,一周的星期只能是 7 天中的一个等。类似这种当一个变量有几种固定可能的取值时,就可以将它定义为枚举类型。 在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代。而使用 Java 枚举类型 enum 可以更贴近地表示这种常量。 声明枚举 声明枚举时必须使用 enu

  • 我在BE端有属性,我可以通过处理程序获取和设置。我使用枚举来设置属性,并使用bean类来获取。现在我需要重复属性名称,我想避免它。 现在我必须支持这些类之间的两种方式的一致性。

  • 问题内容: 我无法使用从常量中获取的枚举作为注释中的参数。我收到此编译错误:“注释属性[attribute]的值必须是枚举常量表达式”。 这是枚举代码的简化版本: 对于注释: 和班级: 该错误仅在方法B的“ theEnum = MYENUM_CONSTANT”中显示。字符串和int常量对于编译器是可以的,但Enum常量不是,即使它的值与methodA上的值完全相同。在我看来,这是编译器中缺少的功能

  • 主要内容:HashSet 类,TreeSet 类Set 集合类似于一个罐子,程序可以依次把多个对象“丢进”Set 集合,而 Set 集合通常不能记住元素的添加顺序。也就是说 Set 集合中的对象不按特定的方式排序,只是简单地把对象加入集合。 Set 集合中不能包含重复的对象,并且最多只允许包含一个 null 元素。 Set 实现了 Collection 接口,它主要有两个常用的实现类: HashSet 类和 TreeSet类。 HashSet