Did you consider using a physics engine, like box2d?
Yes but I thought these provide too much for something that should be apparently simple.
Also, I'd like to resort to the less external engine as possible.
I mean, it is possible to check all these entities, but you'll really have to make sure you have a really good algorithm, and perform culling correctly in order for it to work quickly enough.
Although I ommited on the algorithm, the entities wouldn't iterate with the whole world, there would be array-grids holding the entities so they only iterate with those who matter. Also I don't know what culling is