我需要将枚举集合转换为字符串集,这是怎么可能的?
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);现在,我想保存(转换) setOfExamples到setOfExamplesString。
发布于 2020-01-24 16:06:43
我会流这组枚举,将它们映射到字符串,并将它们收集到一个集合中:
Set<String> setOfExamplesString =
setOfExamples.stream().map(Example::name).collect(Collectors.toSet());编辑:
为了解决注释中的问题,在Java版本8之前可以使用一个直接的循环来完成同样的事情,尽管IMHO不会那么优雅:
Set<String> setOfExamplesString = new HashSet<>()
for (Example e : setOfExample) {
setOfExampleString.add(e.name());
}发布于 2020-01-24 17:45:17
我不确定你是否需要在你的程序后面的Enum集合。但是,如果我们的目的是使用这些Enum获取字符串集,那么我相信首先将元素添加到字符串集合本身可能是一个更好的选择。
我们将简单地使用Enum上的name方法,它给出了字符串表示形式。代码片段如下所示
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);
}
}希望这能有所帮助。
https://stackoverflow.com/questions/59899940
复制相似问题