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是否包含值?