
328
9
章
イテレータの使用
public interface Iterator {
boolean hasNext();
MenuItem next();
}
public class DinerMenuIterator implements Iterator {
MenuItem[] items;
int position = 0;
public DinerMenuIterator(MenuItem[] items) {
this.items = items;
}
public MenuItem next() {
MenuItem menuItem = items[position];
position = position + 1;
return menuItem;
}
public boolean hasNext() {
if (position >= items.length || items[position] == null) {
return false;
} else {
return true;
}
}
}
DinerMenu
にイテレータを追加する
この例では
2
つのメソッドがあります。
hasNext()
メソッドは、反復処理を
行う要素がさらにあるかどうかを示す
ブール値を返します。
DinerMenu
にイテレータを追加するには、まず
Iterator
インタフェースを定義する必要があります。
next()
メソッドは次の要素を返
します。
次に、食堂のメニューに対して機能する具象イテレータを実装する必要があります。 ...