Как реализовать итератор фильтрации в Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как реализовать итератор фильтрации в Java?

Сообщение Anonymous »

Я создал массив объектов (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, а я не могу создать такой объект, поскольку это интерфейс?

Подробнее здесь: https://stackoverflow.com/questions/427 ... or-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»