创建一个数组,其中每个位置都是枚举类型

Maz*_*zzy 5 java arrays enums

嗨,我想创建一个数组,其中每个位置由枚举的值表示.

例如:

public enum type{

  green,blue,black,gray;

}
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个阵列,其中每个位置都是绿色,蓝色,......

我会更清楚.我想创建一个数组,其中位置由enum class.instead int []数组表示.[=] int []创建int [] array = new int [type.value]

Xae*_*ess 6

是的type[] allValues = type.values().看到这个问题.

或者你可以使用EnumSet:

EnumSet<type> types = EnumSet.allOf(type.class);
Run Code Online (Sandbox Code Playgroud)

它为您提供了Set充满您的枚举值的高性能实现.

PS:您应该以大字母(CamelCase)开头命名enum类.

编辑:

似乎你想要你的emum值的序数位置数组(为什么现在有人会使用数组而不是正确的数据集?):

type[] colors = type.values();
List<Integer> list = new ArrayList<Integer>(colors.length);
for (type color : colors) {
  list.add(color.ordinal());
}
Integer[] array = list.toArray(new Integer[0]);
Run Code Online (Sandbox Code Playgroud)

编辑2:也许你想要Map<Integer, type>键和值0 => green, 1 => blue, 2 => black, 3=> gray(问题仍然不明确)?