java中的枚举值列表
是否可以创建枚举值的ArrayList(并对其进行操作)?例如:
enum MyEnum
{
ONE, TWO
}
MyEnum my = MyEnum.ONE;
List <?> al = new ArrayList <?>();
al.add(my);
al.remove(al.size()-1);
你可以在下面搜索框中键入要查询的问题!
是否可以创建枚举值的ArrayList(并对其进行操作)?例如:
enum MyEnum
{
ONE, TWO
}
MyEnum my = MyEnum.ONE;
List <?> al = new ArrayList <?>();
al.add(my);
al.remove(al.size()-1);
# 1 楼答案
这是一个更通用的解决方案,可以用于任何枚举对象,因此请不要使用
现在你必须这样称呼:
# 2 楼答案
tl;博士
你能从一个枚举中创建和编辑一个对象集合吗<是的
如果不关心顺序,请使用^{} ,这是^{} 的一个实现
如果您关心顺序,请使用^{} 实现,例如^{} 。例如,我们可以创建一个列表,列出一个人在选择宠物时的偏好,按照他们最喜欢的顺序排列
对于不可修改的有序列表,请使用^{}
细节
Amit Deshpande的The Answer(
EnumSet
)和Marko Topolnik的the Answer(.values
)都是正确的。这里有更多的信息Enum.values
.values()
方法是由编译器添加的^{关于文档的特别注意事项:作为一个隐式声明的方法,不寻常的是}
.values()
方法不是Enum
类中列出的方法。方法是defined in the Java Language Specification,文档中提到了^{EnumSet
–快速和;小的^{} 的好处包括:
引用课堂文档:
鉴于此枚举:
在一行中画一个
EnumSet
转储到控制台
从枚举对象的子集创建一个集合
查看the class doc以了解操作集合的许多方法,包括添加或删除元素
自然秩序
文档承诺EnumSet的迭代器是自然顺序的,即最初声明enum值的顺序
引用课堂文档:
坦白地说,考虑到这个承诺,我很困惑为什么这不是一个^{} 。但是,哦,好吧,足够好了。如果需要,我们可以从} 。将任何} 将自动代表您调用
Set
创建一个^{Collection
传递给ArrayList
的构造函数,该集合的^{转储到控制台
跑步的时候
在Java10及更高版本中,可以通过传递}的迭代器顺序是枚举的元素对象在该枚举上定义的顺序
EnumSet
来方便地创建不可修改的List
。新列表的顺序将是EnumSet
的迭代器顺序。{# 3 楼答案
enum只是Java中的另一个类,应该是可能的
更准确地说,枚举是对象的实例:http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html
所以,是的,它应该有效
# 4 楼答案
是的,这绝对是可能的,但你必须这么做
然后可以将元素添加到
al
:al.add(ONE)
或al.add(TWO)
# 5 楼答案
你可以简单地写
# 6 楼答案
这是可能的,但您应该使用^{}