在java中,是否可以通过循环枚举将每个项添加到列表中?
我有一个包含30个值的枚举,我需要将每个值放入一个列表中。有没有一种方法可以循环每一行代码并添加它们,而不是将每一行代码添加30行?enum的名字是School,我试着在java中,是否可以通过循环枚举将每个项添加到列表中?,java,list,enums,Java,List,Enums,我有一个包含30个值的枚举,我需要将每个值放入一个列表中。有没有一种方法可以循环每一行代码并添加它们,而不是将每一行代码添加30行?enum的名字是School,我试着 List<School> schools = new ArrayList<School>(); schools.add(School.values()); List schools=new ArrayList(); schools.add(School.values()); 及 List scho
List<School> schools = new ArrayList<School>();
schools.add(School.values());
List schools=new ArrayList();
schools.add(School.values());
及
List schools=new ArrayList();
schools.addAll(School.values());
enum#values
返回一个数组。改用数组。asList
:
schools.add(Arrays.asList(School.values()));
或一行:
List<School> schools = Arrays.asList(School.values());
List schools=Arrays.asList(School.values());
创建您的列表,如
List<School> schools = new ArrayList<School>(Arrays.asList(School.values()));
List schools=newarraylist(Arrays.asList(School.values());
如果使用Arrays.asList(School.values())
,则以后无法向该列表添加任何内容,最终会出现异常。从方法的文档中
返回指定数组支持的固定大小列表
如果按照建议的方式创建,则可以添加更多元素。@LuiggiMendoza抱歉,我已经修复了它。两者之间没有区别codes@sᴜʀᴇsʜᴀᴛᴛᴀ 不,它说它不适用于arguments@user3887792我补充道。希望这有帮助。(在第二行的情况下):所以OP不能在
学校
@s之后添加任何内容ᴜʀᴇsʜᴀᴛᴛᴀ 这就是为什么我显示第一个选项。无论如何,我不能考虑一个明确的用例,在这个用例中,您需要将重复的枚举值添加到列表中
,所以这次一行方法就足够了。同意。我用行号编辑了我的评论。
List<School> schools = new ArrayList<School>(Arrays.asList(School.values()));