An array of data should work just fine.
Perhaps an additional array
with symbols representing an object or npcs.
Every so often update the map, delete objects that aren't in view of the camera/player. Have the view be a little larger than what you will actually display on screen.