Tengo dos matrices: Muros y Vecinos.¿Es una mala práctica usar el valor ordinal de Enum para indexar una matriz en Java?
public boolean[] walls = new boolean[4];
public Cell[] neighbors = new Cell[4];
y tengo una enumeración:
enum Dir
{
North,
South,
East,
West
}
Ahora, me gustaría ser capaz de acceder a las paredes o los vecinos por su dirección, por lo que no tiene que pasar alrededor de un montón de magia índices
Sin embargo, cuando estaba leyendo la documentación de Enum.ordinal() decía que los programadores casi no tendrían ningún uso para este método que me hizo pensar que no debería usarse de esta manera.
Yo estaba pensando en hacer algo como:
List<Dir> availableDirections = new ArrayList<Dir>();
for(Dir direction : Dir.values())
if (!Neighbors[direction.ordinal()].Visited)
availableDirections.add(direction);
o incluso:
return Neighbors[Dir.North.ordinal()];
¿Debo volver a utilizar constantes estáticas para el norte, sur, este, oeste, con el valor del índice se establece en ellos o utilizar un método ordinal de Enum?
Y 'EnumSet' para' walls'. Probablemente no es necesario que esté sincronizado. –