It seems unusual to me to base your collision on the collection type, unless that collection is a 2D/3D grid with one object per position, represented as an array. If it is, you can check a precise point on that array in O(1).
If you're doing collision precisely, in pixels or vectors, you probably will have to iterate.
I'd use a LinkedList of some kind in that case, because you'll probably be removing things on collisions.