对不起,可能是一个简单的问题。

我需要标记数组

boolean[20] isTownVisited


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

 isTownVisited[Town.Milan] = true;


要么

 return isTownVisited[Town.Rome]


我试图声明枚举

enum Town {Milan, Rome, Florence, Napoli}


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

enum Town {Milan = 0, Rome = 1, Florence = 2, Napoli = 3}

最佳答案

您可以使用EnumSet。

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

towns.add(Town.Rome);

return towns.contains(Town.Napoli);


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

07-26 03:38