我想用一个枚举的所有可能值列出一个列表
因为我最近爱上了EnumSet
,我利用了allOf()
EnumSet<Something> all = EnumSet.allOf( Something.class);
List<Something> list = new ArrayList<>( all.size());
for (Something s : all) {
list.add( s);
}
return list;
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法(如在非混淆的一个班轮中)获得相同的结果?
Pet*_*rey 152
我不会在第一个地方使用List,因为EnumSet更适合,但你可以这样做
List<Something> somethingList = Arrays.asList(Something.values());
Run Code Online (Sandbox Code Playgroud)
要么
List<Something> somethingList =
new ArrayList<Something>(EnumSet.allOf(Something.class));
Run Code Online (Sandbox Code Playgroud)
Jac*_*ack 10
有一个构造函数ArrayList
是
ArrayList(Collection<? extends E> c)
Run Code Online (Sandbox Code Playgroud)
现在,EnumSet
扩展AbstractCollection
所以你可以做到
ArrayList<Something> all = new ArrayList<Something>(enumSet)
Run Code Online (Sandbox Code Playgroud)
AZ_*_*AZ_ 10
List<SOME_ENUM> enumList = Arrays.asList(SOME_ENUM.class.getEnumConstants());
Run Code Online (Sandbox Code Playgroud)
尝试
enum E {
E1, E2, E3
}
public static void main(String[] args) throws Exception {
List<E> list = Arrays.asList(E.values());
System.out.println(list);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
139776 次 |
最近记录: |