如何在java中使用enumMap

2023-12-29

java中如何使用enumMap?我想使用 enumMap 来获取从 0 到 n 的常量命名值,其中 n 是大小。但我不明白oracle网站上的描述>EnumMap http://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html.

我尝试在这里使用一个

package myPackage;

import java.util.EnumMap;

public class Main{

    public static enum Value{
        VALUE_ONE, VALUE_TWO, SIZE
    }

    public static EnumMap<Value, Integer> x;

    public static void main(String[] args){
        x.put(Value.VALUE_ONE, 0);
        x.put(Value.VALUE_TWO, 1);
        x.put(Value.SIZE, 2);

        int[] myArray = new int[SIZE];

    }

}

这是行不通的。你应该如何使用 enumMap ?

还有没有办法不用x.put(Value.VALUE_ONE, 0);对于枚举中的每个元素?


不要尝试将大小存储在枚举中,EnumMap has a size方法。

public static enum Value{
    VALUE_ONE, VALUE_TWO
}

此外,枚举类型有一个静态方法values您可以使用它来获取实例数组。您可以使用它来循环并将它们添加到 EnumMap

public static void main(String[] args){        
    for(int i = 0; i < Value.values().length ; i++) {
        x.put(Value.values()[i], i);
    }
    int[] myArray = new int[x.size()];
}

您还需要确保初始化EnumMap否则你将会有一个NullPointerException:

public static EnumMap<Value, Integer> x = new EnumMap<>(Value.class);

如果您想做的只是通过索引检索枚举值,那么您不需要EnumMap根本不。仅当您尝试分配任意值时这才有用。 您可以使用以下方法通过索引获取任何枚举values method:

Value.values()[INDEX]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在java中使用enumMap 的相关文章

随机推荐