如何遍历具有自定义值的枚举?

时间:2019-11-23 13:39:48

标签: java enums

我有一个带有自定义值的枚举:

enum DaysOfExercise{

   MONDAY ("legs Workout"),
   WEDNESDAY ("back workout"),
   SATURDAY ("running") ;

   private String exercise ; 

   private DaysOfExercise(String exercise){
       this.exercise = exercise ;
   }

   public String getExercise(){
       return this.exercise ;
   }
}

我需要添加一个搜索功能,该功能根据输入的练习名称返回DaysOfExercise

我知道Enum中有一种.values()方法可以返回DaysOfExercise值列表以方便地进行迭代,但是在我的情况下,我想返回嵌入的值列表以进行比较用户键入的内容。

是否有任何内置方法可以返回枚举自定义值列表而不是枚举值?

注意:并不是我被这个问题困扰。我可以通过几个循环轻松解决它。我只是在寻找一种优化的解决方案。

1 个答案:

答案 0 :(得分:5)

使用streammap枚举值数组到字符串列表。

List<String> exercises = Stream.of(DaysOfExercise.values())
    .map(DaysOfExercise::getExercise)
    .collect(Collectors.toList());