@mh114@ - thanks for the tip. I picked up on that from @pjt33@'s reply.
So just to confirm, in @pjt33@'s code, when the current slot in the ArrayList for the current enemy object is overridden by the last, the current enemy gets taken care of by the GC, right? (In other words, there's no need to assign the current enemy to the last slot and explicitly remove it...)
1 2 3 4 5 6 | if (e.isMarkedForDeletion()) |