برای حذف عناصر یک لیست بصورت درجا (in place) تنها راه، استفاده از Iterator است ولی اگه نخواهید بصورت درجا انجام شود و پس از حذف یک لیست جدید برای شما ساخته شود می توانید از stream ها در جاوا 8 استفاده کنید.
برای مثال در کد زیر تمام غذاهایی برای گیاه خوارها مناسب نیستند حذف کرده و یک لیست جدید که فقط برای Vegetarian ها مناسب است را بر میگرداند.
List<Dish> vegetarianMenu = menu.stream().filter(
d -> d.isVegetarian()).collect(toList());