I'm not sure that I entirely understand your question but what I *think* you are asking is how can you give things positions if they are moving around? (Notice how me not understanding you doesn't stop me from answering

). Can you explain your problem in a little more detail.
1. You have x,y coordinates but those look to be for rendering. Why not add the x,y coordinates of the level to each tile. So your set tile looks like:
1 2 3 4 5 6
| public void setTile(int x, int y, Tile tile){ tile.setBoardPosition(x,y); int id = map[y][x]; Tile.tiles[map[y][x]] = tile; tile.init(this); } |
2. What are your entities and is there any reason you keep a separate array of the level rather than adding them directly to the tile/