您可以这样做:
set.removeIf(item -> { if (!item.qualify()) return false; item.operate(); return true;});如果
item.operate()总是返回,
true您可以非常简洁地执行此操作。
set.removeIf(item -> item.qualify() && item.operate());
但是,我不喜欢这些方法,因为目前尚不清楚发生了什么。就个人而言,我将继续为此使用
for循环和
Iterator。
for (Iterator<Item> i = set.iterator(); i.hasNext();) { Item item = i.next(); if (item.qualify()) { item.operate(); i.remove(); }}


