Filtering Data
Summary
Interface Summary
public interface Filter {
public boolean satisfies(QuakeEntry qe);
• Defining Interfaces :
• Specify methods classes must have
Interface Summary
public class MinMagFilter implements Filter {
private double magMin;
public MinMagFilter(double min) {
magMin = min;
}
public boolean satisfies(QuakeEntry qe) {
return [Link]() >= magMin;
}
}
• Implementing Interfaces:
• Write class with “implements InterfaceName”
• Define all required methods
Interface Summary
public ArrayList<QuakeEntry>
filter(ArrayList<QuakeEntry> quakeData,
Filter f) {
ArrayList<QuakeEntry> answer
= new ArrayList<QuakeEntry>();
for(QuakeEntry qe : quakeData) {
if ([Link](qe)) {
[Link](qe);
}
}
return answer;
}
• Using Interface Types:
• Can use interface name as type
• Can call methods in the interface
Interface Summary
Filter f = new MinMagFilter(4.0);
ArrayList<QuakeEntry> largeQuakes
= filter(list, f);
• Type compatibility: use class as interface
• Will still use methods in class: dynamic dispatch