温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Enum怎么遍历

发布时间:2026-11-09 20:21:19 来源:亿速云 阅读:100 作者:小樊 栏目:编程语言

在 Java 中,Enum(枚举)是可以直接遍历的,常用方式有以下几种:


1️⃣ 使用 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

2️⃣ 使用 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))

3️⃣ 使用 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;
    }
}

4️⃣ 使用 Stream(Java 8+)

import java.util.Arrays;

Arrays.stream(Color.values())
      .forEach(System.out::println);

或更优雅:

EnumSet.allOf(Color.class)
       .forEach(System.out::println);

5️⃣ 获取枚举名称 / 序号

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,也可以告诉我,我可以给你更具体的写法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手