首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Set<Enums>转换为Set<String>

将Set<Enums>转换为Set<String>
EN

Stack Overflow用户
提问于 2020-01-24 16:02:36
回答 2查看 1K关注 0票数 1

我需要将枚举集合转换为字符串集,这是怎么可能的?

代码语言:javascript
复制
public enum Example {
    A,
    B,
    C
}

Set<Example> setOfExamples;
Set<String> setOfExamplesString;

setOfExamples.add(Example.A);
setOfExamples.add(Example.B);
setOfExamples.add(Example.A);
setOfExamples.add(Example.C);

现在,我想保存(转换) setOfExamplessetOfExamplesString

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-24 16:06:43

我会流这组枚举,将它们映射到字符串,并将它们收集到一个集合中:

代码语言:javascript
复制
Set<String> setOfExamplesString = 
    setOfExamples.stream().map(Example::name).collect(Collectors.toSet());

编辑:

为了解决注释中的问题,在Java版本8之前可以使用一个直接的循环来完成同样的事情,尽管IMHO不会那么优雅:

代码语言:javascript
复制
Set<String> setOfExamplesString = new HashSet<>()
for (Example e : setOfExample) {
    setOfExampleString.add(e.name());
}
票数 6
EN

Stack Overflow用户

发布于 2020-01-24 17:45:17

我不确定你是否需要在你的程序后面的Enum集合。但是,如果我们的目的是使用这些Enum获取字符串集,那么我相信首先将元素添加到字符串集合本身可能是一个更好的选择。

我们将简单地使用Enum上的name方法,它给出了字符串表示形式。代码片段如下所示

代码语言:javascript
复制
import java.util.HashSet;
import java.util.Set;

public class Test {
public enum Example {
    A,
    B,
    C
}

public static void main(String[] args) {

    Set<String> setOfExamplesString = new HashSet<>();

    setOfExamplesString.add(Example.A.name());
    setOfExamplesString.add(Example.B.name());
    setOfExamplesString.add(Example.C.name());
    System.out.println(setOfExamplesString);

}
}

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59899940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档