Ho due array: muri e vicini.È una pratica sbagliata usare il valore ordinale di Enum per indicizzare un array in Java?
public boolean[] walls = new boolean[4];
public Cell[] neighbors = new Cell[4];
e ho un Enum:
enum Dir
{
North,
South,
East,
West
}
Ora, mi piacerebbe essere in grado di accedere pareti o vicini di casa per la loro direzione, in modo da non dover passare intorno ad un gruppo di magia indici.
Tuttavia, quando stavo leggendo la documentazione di Enum.ordinal() diceva che i programmatori non avrebbero quasi più bisogno di questo metodo che mi ha fatto pensare che non dovrebbe essere usato in questo modo.
Stavo pensando di fare qualcosa di simile:
List<Dir> availableDirections = new ArrayList<Dir>();
for(Dir direction : Dir.values())
if (!Neighbors[direction.ordinal()].Visited)
availableDirections.add(direction);
o anche:
return Neighbors[Dir.North.ordinal()];
Dovrei tornare a utilizzare le costanti statici per nord, sud, est, ovest con il valore di indice impostato loro o utilizzare il metodo ordinale di Enum?
E 'EnumSet' per' muri'. Probabilmente non ne ha bisogno per essere sincronizzato. –