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

1 java string enums set

我需要将一组枚举转换为一组字符串,这怎么可能?

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);
Run Code Online (Sandbox Code Playgroud)

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

Mur*_*nik 6

我会流式传输一组枚举,将它们映射到字符串,然后将它们收集到一个集合中:

Set<String> setOfExamplesString = 
    setOfExamples.stream().map(Example::name).collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)

编辑:
为了解决评论中的问题,可以在 8 之前的 Java 版本中使用直接循环来完成同样的事情,尽管恕我直言,它不会那么优雅:

Set<String> setOfExamplesString = new HashSet<>()
for (Example e : setOfExample) {
    setOfExampleString.add(e.name());
}
Run Code Online (Sandbox Code Playgroud)