将枚举转换为集合/列表

发布于 2024-10-31 04:03:03 字数 234 浏览 3 评论 0 原文

是否有一些单行桥接方法可以将给定的枚举转储到java.util.Listjava.util.Set

Arrays.asList()Collection.toArray() 这样的内置内容应该存在于某处,但我无法在我的 IntelliJ 调试器的评估器窗口中找到它(并且Google/SO 结果也是如此)。

Is there some one-liner bridge method to dump a given Enumeration to java.util.List or java.util.Set?

Something built-in like Arrays.asList() or Collection.toArray() should exist somewhere, but I'm unable to find that in my IntelliJ debugger's evaluator window (and Google/SO results, too).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

凉风有信 2024-11-07 04:03:04

Apache commons-collections 中也有
EnumerationUtils.toList(枚举)

There's also in Apache commons-collections
EnumerationUtils.toList(enumeration)

蓝天白云 2024-11-07 04:03:04

我需要同样的东西,这个解决方案工作正常,希望它也可以帮助别人

Enumeration[] array = Enumeration.values();
List<Enumeration> list = Arrays.asList(array);

,然后你可以获得枚举的 .name() 。

I needed same thing and this solution work fine, hope it can help someone also

Enumeration[] array = Enumeration.values();
List<Enumeration> list = Arrays.asList(array);

then you can get the .name() of your enumeration.

拥有 2024-11-07 04:03:03

您可以使用 集合。 list()Enumeration 转换为 List 在一行中:

List<T> list = Collections.list(enumeration);

没有类似的方法来获取 Set >,但是你仍然可以一行完成:

Set<T> set = new HashSet<T>(Collections.list(enumeration));

You can use Collections.list() to convert an Enumeration to a List in one line:

List<T> list = Collections.list(enumeration);

There's no similar method to get a Set, however you can still do it one line:

Set<T> set = new HashSet<T>(Collections.list(enumeration));
晒暮凉 2024-11-07 04:03:03

怎么样: Collections.list(Enumeration e) 返回一个 ArrayList

How about this: Collections.list(Enumeration e) returns an ArrayList<T>

烟织青萝梦 2024-11-07 04:03:03

如果您需要 Set 而不是 List,则可以使用 EnumSet.allOf()

Set<EnumerationClass> set = EnumSet.allOf(EnumerationClass.class);

更新:JakeRobb 是对的。我的答案是关于 java.lang.Enum 而不是 java.util.Enumeration。抱歉回答无关的问题。

If you need Set rather than List, you can use EnumSet.allOf().

Set<EnumerationClass> set = EnumSet.allOf(EnumerationClass.class);

Update: JakeRobb is right. My answer is about java.lang.Enum instead of java.util.Enumeration. Sorry for unrelated answer.

幸福还没到 2024-11-07 04:03:03

使用番石榴时(请参阅doc)有 Iterators.forEnumeration。给定一个Enumeration x,您可以执行以下操作:

获取不可变的 Set:

ImmutableSet.copyOf(Iterators.forEnumeration(x));

获取不可变的 List:

ImmutableList.copyOf(Iterators.forEnumeration(x));

获取 hashSet:

Sets.newHashSet(Iterators.forEnumeration(x));

When using guava (See doc) there is Iterators.forEnumeration. Given an Enumeration x you can do the following:

to get a immutable Set:

ImmutableSet.copyOf(Iterators.forEnumeration(x));

to get a immutable List:

ImmutableList.copyOf(Iterators.forEnumeration(x));

to get a hashSet:

Sets.newHashSet(Iterators.forEnumeration(x));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文