consumer
List<BasicArea> list = new ArrayList<>();
Map<String,Consumer<Boolean>> areaPopulate=new HashMap<>();
list.forEach(basicArea -> {
areaPopulate.put("a",basicArea::setDeleteStatus);
});
if (true){// 复杂判断
areaPopulate.get("a").accept(true);// accept 调用之后,会将之前的预设的要处理的数据,进行处理
}
例如这个操作,是为了给每个BasicArea 设置 setDeleteStatus 的一个状态,当然可以做很复杂的判断,然后再设置为ture;
只是举个设置为布尔类型的例子,当然其他类型的也可以;
function
public static void main(String[] args) {
List<BasicArea> areaFailList = new ArrayList<>();// 失败的集合
List<BasicArea> areaSuccessList = new ArrayList<>();// 所有集合
quchong(areaFailList, areaSuccessList, vo -> { // 判断去重的条件
if(****){
return false
}else{
return true;
}
});
}
// 去重的执行方法
private void quchong(List<BasicArea> areaFailList, List<BasicArea> areaSuccessList, Function<BasicArea, Boolean> vo) {
Iterator<BasicArea> iterator = areaSuccessList.iterator();
while (iterator.hasNext()) {
BasicArea next = iterator.next();
if (!vo.apply(next)) { // apply 符合去重条件的
iterator.remove();
areaFailList.add(next);
}
}
}
其中 循环中的return ture; 方法 中的入参 Function<BasicArea, Boolean> vo 中的Boolean 对应;
本文转自 jimolvxing.blog.csdn.net/article/det…,如有侵权,请联系删除。