您的位置:

Java 枚举遍历方法介绍

一、基本概念

枚举在Java中是一种特殊的数据类型,它定义了一组预定义常量和值。

用枚举定义常量可以让程序更加易读、易维护、易调试。在一些特定的场合,使用枚举可以有效地避免代码中的一些错误。

在Java中,枚举是通过enum关键字来定义的。

public enum Season {
    SPRING, SUMMER, AUTUMN, WINTER;
}

上面的代码定义的是一个季节的枚举,它包含4个值:SPRING、SUMMER、AUTUMN、WINTER。

二、遍历枚举值

1、使用values()方法

Java编译器会自动为枚举类型添加一个values()方法,它会返回包含枚举所有值的数组。

Season[] seasons = Season.values();
for (Season season : seasons) {
    System.out.println(season);
}

上述代码会打印出以下结果:

SPRING
SUMMER
AUTUMN
WINTER

2、使用foreach循环

通过foreach循环遍历所有的枚举值。

for (Season season : Season.values()) {
    System.out.println(season);
}

同样,以上代码也会输出四个枚举值。

3、使用Stream API

在Java 8之后引入的Stream API可以用于遍历枚举值。

Stream.of(Season.values()).forEach(System.out::println);

上述代码使用Stream API的forEach方法遍历所有枚举值,并打印出来。

三、根据枚举属性过滤枚举值

有时候我们需要根据枚举的某个属性进行过滤,从而得到需要的枚举值。下面介绍两种方法。

1、遍历枚举值,判断属性值

for (Season season : Season.values()) {
    if (season.name().equals("SPRING")) {
        System.out.println(season);
    }
}

以上代码可以根据枚举的名称属性值来过滤需要的枚举值,输出结果为:

SPRING

2、使用Stream API过滤属性值

Stream.of(Season.values())
        .filter(s -> s.name().equals("SUMMER"))
        .forEach(System.out::println);

以上代码使用Stream API的filter方法,根据属性值来过滤出需要的枚举值,输出结果如下:

SUMMER

四、总结

以上介绍了三种遍历枚举值的方法,以及两种根据枚举属性值来过滤枚举值的方法。

枚举在Java中的使用非常广泛,这里只是介绍了其中的一小部分用法。希望本文对想要学习枚举的Java开发者有所帮助。