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等
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


