Isometric game data structure and rendering

Although you might have more success asking on https://gamedev.stackexchange.com/ I'll try and provide some ideas:

You should create a Tile class might contain a collection of entities on that tile. Additionally entities might hold a reference to the tile(s) it is located on.

As for the map representation, it depends on how the map would be represented. If you have a fixed size map you might use a 2D array (the array would only contain links to tiles which might be null if not currently needed), otherwise you might use a map whose index would be the position of the tile. Then query the map for the tiles you need to display.

Additionally you might want to employ some caching and load a few tiles that surround the displayed area. When tiles are outside that cached area and you need memory they might be removed from the map.