声明枚举在数组中使用?

jav*_*red 2 java arrays enums

对不起,可能很容易问题.

我需要一系列标志

boolean[20] isTownVisited
Run Code Online (Sandbox Code Playgroud)

但是在它中使用int并不方便,我想使用字符串:

 isTownVisited[Town.Milan] = true;
Run Code Online (Sandbox Code Playgroud)

要么

 return isTownVisited[Town.Rome]
Run Code Online (Sandbox Code Playgroud)

我试图宣布枚举

enum Town {Milan, Rome, Florence, Napoli}
Run Code Online (Sandbox Code Playgroud)

但我仍然不能用它来索引我的布尔数组.如何解决这个问题,我可以这样写:

enum Town {Milan = 0, Rome = 1, Florence = 2, Napoli = 3}
Run Code Online (Sandbox Code Playgroud)

Pet*_*rey 6

您可以使用EnumSet.

Set<Town> towns = EnumSet.of(Town.Milan);

towns.add(Town.Rome);

return towns.contains(Town.Napoli);
Run Code Online (Sandbox Code Playgroud)

在引擎盖下,EnumMap和EnumSet使用int ordinal();EnumSet使用位图.