【发布时间】:2019-01-07 00:50:30
【问题描述】:
我不认为我创建的 MatchAllFilter 类正在存储我尝试正确添加到其中的过滤器。当我传递一个列表时,没有一个过滤器正在工作。如何正确地将其他过滤器存储到 MatchAllFitlers 中,并将过滤器存储在 maf 中过滤我将要传递的列表?我已经一一测试了我所有的过滤器;我知道它们有效。
public class MatchAllFilter implements Filter {
private ArrayList<Filter>filt;
private String nameF;
public MatchAllFilter(){
filt= new ArrayList<Filter>();
}
public void addFilter(Filter f){
filt.add(f);
}
public boolean satisfies(QuakeEntry qe) {
for(Filter f:filt){
if (f.satisfies(qe)){
return true;
}
}
return false;
}
}
public void testMatchAllFilter(){
EarthQuakeParser parser = new EarthQuakeParser();
//String source = "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.atom";
String source = "data/nov20quakedatasmall.atom";
ArrayList<QuakeEntry> list = parser.read(source);
MatchAllFilter maf=new MatchAllFilter();
double depthMin=-100000.0;
double depthMax=-10000.0;
Filter f= new DepthFilter(-100000.0,-10000.0);
maf.addFilter(f);
Filter e= new MagnitudeFilter(0.0, 2.0);
maf.addFilter(e);
Filter g= new PhraseFilter("any","a");
maf.addFilter(g);
//ArrayList<QuakeEntry>m10= filter(list,maf);
//for (QuakeEntry qe: list) {
//System.out.println(qe);
System.out.println(maf);
}
【问题讨论】:
标签: java list class filter filtering