我正在努力将现有的forloop转换为lambda表达式。
我有一个对象列表(List<Task>
),其中包含一个名为“ InputData”(Map<String,String>
)的映射。
我还有另一个Map<String,String>
(接受)。
我想过滤Task.InputData映射包含所有“ acceptance”映射条目的Task对象列表。 Task.InputData可能包含其他条目,但我要强制执行Acceptance中存在的var,必须在Task.InputData中存在。
现有的for循环如下所示:
boolean addTask;
List<Task> finalResults = new ArrayList<>();
for (Task t : results) {
addTask = true;
for (Entry<String,String> k : kvVars.entryset()) {
if (!t.getInputData().containsKey(k) || !t.getInputData().get(k).equals(k.getvalue())) {
addTask = false;
}
}
if (addTask) {
finalResults.add(t);
}
}
无论是应该尝试结合平面图和过滤条件,还是应该遵循现有for循环中的逻辑,我对这种方法都感到困惑。