Assuming you are using LibGDX Animation class, you can use isAnimationFinished() method to check if animation has finished or not.
When you start your animation, you need to store starting time and subtract current time from it. Obviously, this needs to run as a separate loop with objects waiting for their animation to finish. You could use britainToRemove and germansToRemove for that. Iterate through these lists and remove elements from britain_array and german_array only when their animation finishes (don't forget to remove them from the list you are iterating through).
Note: My suggestion would make the two *toRemove lists state objects.
EDIT: If you care about performance, you should use PriorityQueue instead of iterating through the whole list.