This is not a duplicate of my question. I checked it and it is more about inner anonymous classes.
I was curious about Lambda expressions and tested the following :>
Because remove(index)
is very expensive :) It needs to copy and shift the rest of elements, and this is done multiple times in your case.
While removeIf(filter)
does not need to do that. It can sweep once and mark all elements to be deleted; then the final phase copies survivors to the head of list just once.