对不起,可能很容易问题.
我需要一系列标志
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)
您可以使用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使用位图.