【发布时间】:2016-01-02 10:50:53
【问题描述】:
我已经为此搜索了解决方案,但没有找到我真正需要的解决方案。
我想知道如何创建一个接受 可变 个条件的通用方法,并根据这些条件返回 ArrayList 的子集。比如:
ArrayList<Measure> dataFiltered = allData.filter(
temperature: 20,
humidity: <80,
...
);
我不知道如何在方法声明中检索这些条件,以及如何指向那些选定的变量来比较和创建过滤元素的子集:
public ArrayList<Measure> filter( /* ??? */ ) {
ArrayList<Measures> filteredMeasures = new ArrayList();
/* Manage conditions in here */
for(Measure measure : allMeasures) {
boolean allConditionsOK = true;
for(condition : conditions) {
// Point to specific variable set in conditions, and compare with value
if(measure.[condition(variable)] != condition(value)) {
allConditionsOK = false;
break;
}
}
if(allConditionsOK) filteredMeasures.add(measure);
}
return filteredMeasures;
}
【问题讨论】:
-
类似
public ArrayList<Measure> filter(Predicate... predicates) { ... }? (见Predicate。)
标签: java class methods processing conditional-statements