Java代码如何遍历枚举值呢?
下文笔者讲述java代码遍历枚举值的方法分享,如下所示
可在枚举值上执行相应操作创建流
然后再按顺序输出枚举值
java枚举简介
枚举是java中一种引用数据类型 其功能用于预定义常量赋值给变量
定义枚举
public enum SexEnum { MALE, FEMALE } 注意事项: Enum类型没有提供迭代方法 如forEach()或iterator() 我们可以使用其values()方法的返回值那么如何遍历枚举呢?
方式1:使用for循环遍历枚举
for (SexEnum s:SexEnum.values()) { System.out.println(s); }
使用流方式
可借助java.util.Stream可在枚举值上执行相应操作创建流
Stream.of(SexEnum.values()); 或 Arrays.stream(SexEnum.values());这里扩展上面的枚举类,使用流方式实现:
public enum SexEnum { MALE("A"), FEMALE("B") private String typeOfInfo; SexEnum(String typeOfInfo) { this.typeOfInfo = typeOfInfo; } // standard getters and setters public static Stream<SexEnum> stream() { return Stream.Of(SexEnum.values()); } } 例: public class EnumStreamExample { public static void main() { SexEnum.stream() .filter(d -> d.getTypeOfInfo().equals("off")) .forEach(System.out::println); } }
使用forEach
forEach方法是Java8开始引入 所有集合类都有其实现 为了在枚举中使用 首先需要转换枚举为集合子类 可使用Arrays.aslist方法生成ArrayList 然后使用forEach方法:
使用EnumSet
EnumSet是针对枚举类型的特殊实现:EnumSet.allOf(SexEnum.class) .forEach(s -> System.out.println(s));
使用枚举类型的ArrayList
List中增加枚举值然后再按顺序输出枚举值
List<SexEnum> list = new ArrayList<>(); list.add(SexEnum.MALE); list.add(SexEnum.FEMALE); for (SexEnum s : list) { System.out.println(s); } list.remove(SexEnum.FEMALE); if (!list.contains(SexEnum.FEMALE)) { System.out.println("FEMALE NOT in the list"); } for (SexEnum s : list) { System.out.println(s); }
从以上示例,我们可以看出遍历枚举,可使用 forEach,Stream以及for等
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。