I have quite large List named items (>= 1,000,000 items) and some condition denoted by
As others have said, your first inclination should be to just build up a second list.
But, if you'd like to also try out editing the list in-place, the efficient way to do that is to use Iterables.removeIf() from Guava. If its argument is a list, it coalesces the retained elements toward the front then simply chops off the end -- much faster than removing() interior elements one by one.