我创建了一个对象数组(tab []),现在需要通过其中一个字段进行过滤和打印(例如,如果ob.a> 1,则打印)。我创建了一个Iterator接口,ArrayIterator,它遍历列表中的所有条目和Predicate接口。这是我的FilteringIterator的构造函数:
private final Iterator iterf;
private final Predicate pred;
public FilteringIterator(ArrayIterator i, Predicate predykat)
{
iterf=i;
pred=predykat;
iterf.first();
}
使用我的“基本”迭代器打印每个条目的方法如下:
public void printlist()
{
ArrayIterator itab =new ArrayIterator(lista);
for(itab.first();!itab.isDone(); itab.next())
{
Student stud=(Student)itab.current();
stud.show();
}
}
我也有一个实现Predicate接口的类:
public interface Predicate
{
public boolean accept(Object ob);
}
如何使用我的FilteringIterator,当它需要Predicate时,我无法创建这样的对象,因为它是一个接口?
Predicate
接口的类,并创建该类的一个实例。 - Louis Wasserman