如何在Java中循环枚举

调用enum类的.values()方法以返回一个数组,并使用for循环对其进行循环:

for (EnumClass obj : EnumClass.values()) {
		System.out.println(obj);
    }

对于Java 8,将enum转换为流并将其循环:

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

1.对于循环枚举

1.1一个enum ,其中包含流行的JVM语言的列表:

Programming.java
package com.mkyong;

public enum Programming {
    CLOJURE,
    GROOVY,
    JAVA,
    KOTLIN,
    SCALA
}

1.2要遍历上述enum类,只需调用.values()并执行常规的for循环

Main.java
package com.mkyong;

public class Main {

    public static void main(String[] args) {

        for (Programming obj : Programming.values()) {
            System.out.println(obj);
        }
    }
	
}

输出量

CLOJURE
GROOVY
JAVA
KOTLIN
SCALA

2. Java 8流API

2.1将enum转换为流并过滤出SCALA

Main.java
package com.mkyong;

import java.util.stream.Stream;

public class Main {

    public static void main(String[] args) {

        Stream.of(Programming.values())
                .filter(x -> !x.toString().equals("SCALA"))
                .forEach(System.out::println);

    }
}

输出量

CLOJURE
GROOVY
JAVA
KOTLIN

参考文献

翻译自: https://mkyong.com/java/how-to-loop-an-enum-in-java/

### Java中遍历枚举的方法 在Java中,可以通过`Enum.values()`方法来获取枚举的所有值,并使用`for-each`循环进行遍历。以下是一个具体的示例代码: ```java package com.example; public class EnumIterationExample { // 定义一个枚举类 public enum Colors { RED, GREEN, BLUE, YELLOW } public static void main(String[] args) { // 使用 for-each 循环遍历枚举 for (Colors color : Colors.values()) { System.out.println(color); } } } ``` 上述代码中,`Colors.values()`方法会返回一个包含所有枚举常量的数组,通过`for-each`循环可以逐一访问这些常量[^1]。 如果需要更复杂的枚举定义,例如带有字段和构造函数的枚举,也可以按照类似的方式进行遍历。以下是一个带字段的枚举示例: ```java package com.example; public class EnumWithFieldsExample { // 定义一个带有字段的枚举类 public enum GoodsType { WEIGH(1, "按重计价"), SIN(2, "按份计价"); private final int code; private final String value; GoodsType(int code, String value) { this.code = code; this.value = value; } public int getCode() { return code; } public String getValue() { return value; } } public static void main(String[] args) { // 遍历并打印每个枚举常量的字段值 for (GoodsType type : GoodsType.values()) { System.out.println("Code: " + type.getCode() + ", Value: " + type.getValue()); } } } ``` 在这个例子中,`GoodsType.values()`同样返回了所有枚举常量的数组,而每个枚举常量都有自己的字段(如`code`和`value`),可以在遍历时访问这些字段[^2]。 此外,还可以将枚举的遍历结果存储到集合中以便后续处理。例如,可以将所有枚举值存入`HashMap`以实现快速查找功能[^2]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值