I have two arrays: Walls and Neighbors.
public boolean[] walls = new boolean[4];
public Cell[] neighbors = new Cell[4];
and I have an Enum:
On a tangential issue, it might be better to use an EnumMap for your neighbours:
Map neighbours =
Collections.synchronizedMap(new EnumMap(Dir.class));
neighbours.put(Dir.North, new Cell());
for (Map.Entry neighbour : neighbours.entrySet()) {
if (neighbour.isVisited()) { ... }
}
etc..
BTW: Enum instances should by convention be all caps,
enum Dir {
NORTH,
EAST,
SOUTH,
WEST
}