Java 如何在arraylist中存储枚举值?

Java 如何在arraylist中存储枚举值?,java,arrays,arraylist,enums,Java,Arrays,Arraylist,Enums,我有一个像这样的enum: public enum SomeEnum { ENUM_VALUE1("Some value1"), ENUM_VALUE2("Some value2"), ENUM_VALUE3("Some value3"); } SomeEnum values[] = SomeEnum.values(); ArrayList<SomeEnum> someEnumArrayList = new ArrayList<SomeEnum>

我有一个像这样的
enum

public enum SomeEnum 
{
    ENUM_VALUE1("Some value1"),
    ENUM_VALUE2("Some value2"),
    ENUM_VALUE3("Some value3");
}
SomeEnum values[] = SomeEnum.values();
ArrayList<SomeEnum> someEnumArrayList = new ArrayList<SomeEnum>();
for(SomeEnum value:values) 
{
    someEnumArrayList.add(value.getValue());
}
public enum SomeEnum {

    ENUM_VALUE1("Some value1"),
    ENUM_VALUE2("Some value2"),
    ENUM_VALUE3("Some value3");

    private static final List<String> VALUES;

    private final String value;

    static {
        VALUES = new ArrayList<>();
        for (SomeEnum someEnum : SomeEnum.values()) {
            VALUES.add(someEnum.value);
        }
    }

    private SomeEnum(String value) {
        this.value = value;
    }

    public static List<String> getValues() {
        return Collections.unmodifiableList(VALUES);
    }

}
List<String> list = Arrays.asList(SomeEnum.values());
我需要将
enum
某些值1某些值2某些值3的值存储在
数组列表中

我可以使用
SomeEnum.values()
获取数组中的所有值,然后迭代该数组并将值存储在
ArrayList
中,如下所示:

public enum SomeEnum 
{
    ENUM_VALUE1("Some value1"),
    ENUM_VALUE2("Some value2"),
    ENUM_VALUE3("Some value3");
}
SomeEnum values[] = SomeEnum.values();
ArrayList<SomeEnum> someEnumArrayList = new ArrayList<SomeEnum>();
for(SomeEnum value:values) 
{
    someEnumArrayList.add(value.getValue());
}
public enum SomeEnum {

    ENUM_VALUE1("Some value1"),
    ENUM_VALUE2("Some value2"),
    ENUM_VALUE3("Some value3");

    private static final List<String> VALUES;

    private final String value;

    static {
        VALUES = new ArrayList<>();
        for (SomeEnum someEnum : SomeEnum.values()) {
            VALUES.add(someEnum.value);
        }
    }

    private SomeEnum(String value) {
        this.value = value;
    }

    public static List<String> getValues() {
        return Collections.unmodifiableList(VALUES);
    }

}
List<String> list = Arrays.asList(SomeEnum.values());
SomeEnum values[]=SomeEnum.values();
ArrayList someEnumArrayList=新建ArrayList();
for(SomeEnum值:值)
{
someEnumArrayList.add(value.getValue());
}

是否有任何其他方法,如
values()
,返回一些值1一些值2一些值3的数组?

您可以在
枚举
本身内部构建该列表,如下所示:

public enum SomeEnum 
{
    ENUM_VALUE1("Some value1"),
    ENUM_VALUE2("Some value2"),
    ENUM_VALUE3("Some value3");
}
SomeEnum values[] = SomeEnum.values();
ArrayList<SomeEnum> someEnumArrayList = new ArrayList<SomeEnum>();
for(SomeEnum value:values) 
{
    someEnumArrayList.add(value.getValue());
}
public enum SomeEnum {

    ENUM_VALUE1("Some value1"),
    ENUM_VALUE2("Some value2"),
    ENUM_VALUE3("Some value3");

    private static final List<String> VALUES;

    private final String value;

    static {
        VALUES = new ArrayList<>();
        for (SomeEnum someEnum : SomeEnum.values()) {
            VALUES.add(someEnum.value);
        }
    }

    private SomeEnum(String value) {
        this.value = value;
    }

    public static List<String> getValues() {
        return Collections.unmodifiableList(VALUES);
    }

}
List<String> list = Arrays.asList(SomeEnum.values());
public enum SomeEnum{
枚举值1(“某些值1”),
枚举值2(“某些值2”),
枚举值3(“某些值3”);
私有静态最终列表值;
私有最终字符串值;
静止的{
值=新的ArrayList();
for(SomeEnum SomeEnum:SomeEnum.values()){
添加(someEnum.value);
}
}
私有SomeEnum(字符串值){
这个值=值;
}
公共静态列表getValues(){
返回集合。不可修改列表(值);
}
}
然后,您可以通过以下方式访问此列表:

List<String> values = SomeEnum.getValues();
List values=SomeEnum.getValues();

如果您使用的是Java 8并且无法更改枚举:

List<String> list = Stream.of(SomeEnum.values())
                          .map(SomeEnum::getValue)
                          .collect(Collectors.toList());
List List=Stream.of(SomeEnum.values())
.map(SomeEnum::getValue)
.collect(Collectors.toList());

您只需从数组中创建列表,如下所示:

public enum SomeEnum 
{
    ENUM_VALUE1("Some value1"),
    ENUM_VALUE2("Some value2"),
    ENUM_VALUE3("Some value3");
}
SomeEnum values[] = SomeEnum.values();
ArrayList<SomeEnum> someEnumArrayList = new ArrayList<SomeEnum>();
for(SomeEnum value:values) 
{
    someEnumArrayList.add(value.getValue());
}
public enum SomeEnum {

    ENUM_VALUE1("Some value1"),
    ENUM_VALUE2("Some value2"),
    ENUM_VALUE3("Some value3");

    private static final List<String> VALUES;

    private final String value;

    static {
        VALUES = new ArrayList<>();
        for (SomeEnum someEnum : SomeEnum.values()) {
            VALUES.add(someEnum.value);
        }
    }

    private SomeEnum(String value) {
        this.value = value;
    }

    public static List<String> getValues() {
        return Collections.unmodifiableList(VALUES);
    }

}
List<String> list = Arrays.asList(SomeEnum.values());
List List=Arrays.asList(SomeEnum.values());

只需使用返回列表的
Arrays.asList(values)
即可。如何检查enum的Arraylist是否包含值?