Looking for input about large data handling

Hi. I’m building a sidescrolling world where you can move around.

The idea is that you should be able to move to any point in the world, as well as travelling really fast.
I’m pregenerating a long list of data about objects to place, their positions etc.

Now. When moving to a point far away from current position I don’t want to loop through the whole list of objects to find what objects should be seen and not, so I’m thinking I should divide the position list into sections, each covering an area equal to the visible area. That way I would only have to roll through the lists closets to the new position.
This would however result in an array of thousands of elements each consisting of about 20 objects and I’m figuring that might not be very healthy.
One solution would be to split everything up further so that in the end I would have a handable nr of arrays containing a handable nr of elements.

I just to like to hear if anyone has some other ideas of how to do this.
The crucial point is to minimize number of loops needed to run on each update (frame).

You’re probably thinking I should generate positions on the fly, but since one place in the world can be revisited I need to store all positions.

cheers :: nook