登录
首页 >  文章 >  java教程

Java枚举遍历方法详解

时间:2026-05-01 18:47:38 495浏览 收藏

在 Java 中,枚举类自带的 `values()` 方法是遍历所有枚举常量的简洁高效方式——它由编译器自动生成,返回按声明顺序排列的枚举实例数组,既支持增强 for 循环快速遍历,也兼容传统索引访问;不仅能用于打印展示,还可结合 switch 或自定义逻辑实现统一处理,同时需注意其不可重写、每次调用返回新数组等特性,合理缓存可提升性能。

怎么利用values方法遍历获取当前枚举类中的所有常量实例

直接调用枚举类的 values() 方法即可获取该枚举类中所有已定义的常量实例,返回的是一个该枚举类型的数组,可配合 for-each 循环遍历。

values() 方法的基本用法

values() 是编译器为每个枚举类自动生成的静态方法,无需手动定义。它返回按声明顺序排列的枚举常量数组。

  • 方法签名固定为:public static YourEnum[] values()
  • 返回数组长度等于枚举中常量个数
  • 数组元素顺序与源码中枚举常量的声明顺序完全一致

常见遍历写法示例

以枚举 Day 为例:

enum Day { MON, TUE, WED, THU, FRI, SAT, SUN }

遍历方式如下:

  • 增强 for 循环(最常用):
    for (Day d : Day.values()) { System.out.println(d); }
  • 传统 for 循环(需索引时用):
    Day[] days = Day.values();
    for (int i = 0; i

注意事项

  • 不能在枚举类内部或外部通过反射等方式覆盖或重写 values() 方法 —— 它是编译器生成的 final 静态方法
  • 每次调用 Day.values() 都会返回一个新数组(内容相同但引用不同),如需多次使用建议缓存数组引用
  • 若枚举常量带有字段或方法,遍历时可直接调用,例如:d.getDisplayName()

替代方案:valueOf() 与 values() 的区别

values() 用于“获取全部”,而 valueOf(String) 用于“按名称查单个”:

  • Day.valueOf("MON") → 返回 Day.MON(字符串必须完全匹配,否则抛 IllegalArgumentException
  • Day.values() → 返回 {MON, TUE, ..., SUN} 数组

终于介绍完啦!小伙伴们,这篇关于《Java枚举遍历方法详解》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>