在 Java 中,Enum(枚举)是可以直接遍历的,常用方式有以下几种:
values() 方法(最常用)每个枚举类编译器都会自动生成一个 values() 方法,返回所有枚举常量数组。
public enum Color {
RED, GREEN, BLUE;
}
public class Test {
public static void main(String[] args) {
for (Color c : Color.values()) {
System.out.println(c);
}
}
}
✅ 输出:
RED
GREEN
BLUE
EnumSet(推荐用于集合操作)适合需要对枚举做集合运算或批量遍历的场景。
import java.util.EnumSet;
public class Test {
public static void main(String[] args) {
for (Color c : EnumSet.allOf(Color.class)) {
System.out.println(c);
}
}
}
✅ 优点:
EnumSet.range(RED, BLUE))switch 遍历(不推荐,仅逻辑分支)for (Color c : Color.values()) {
switch (c) {
case RED:
System.out.println("红");
break;
case GREEN:
System.out.println("绿");
break;
case BLUE:
System.out.println("蓝");
break;
}
}
Stream(Java 8+)import java.util.Arrays;
Arrays.stream(Color.values())
.forEach(System.out::println);
或更优雅:
EnumSet.allOf(Color.class)
.forEach(System.out::println);
for (Color c : Color.values()) {
System.out.println(c.name()); // RED
System.out.println(c.ordinal()); // 0,1,2
}
| 方式 | 推荐度 | 场景 |
|---|---|---|
values() |
⭐⭐⭐⭐⭐ | 最简单通用 |
EnumSet |
⭐⭐⭐⭐ | 集合/范围操作 |
Stream |
⭐⭐⭐ | 函数式处理 |
switch |
⭐⭐ | 分支逻辑 |
如果你是 在 MyBatis / Spring / 前端传值 场景遍历 Enum,也可以告诉我,我可以给你更具体的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。