乗り越えられないことが 1 つありますが、プロジェクトはほぼ終了しています。
最初に引用させてください:
クラス Board は、特定の条件を満たすボード上のすべての要素 (ロボットによって運ばれるアイテムを除く) を返すイテレータを返すメソッドも提供する必要があります。条件の例としては、少なくとも 1000 Ws のエネルギーを持つすべての要素 (既知のエネルギーがないため、反復子は壁やサプライズ ボックスを返しません)、ボードの一部のサブ範囲内のすべての要素、ボード上のすべてのアイテムです。など
それで、要素がオンになっているボードがあります。(ロボット、特定のアイテム、壁など)
クラスでは、Iterable を実装し、必要に応じて iterator() メソッドをオーバーライドする方法を見てきましたが、今度は条件をパラメーターとしてこのイテレーターに渡す必要がありますか?
私のベストショットは、クラス Board のこのメソッドでした。
public Iterator<Element> getAllElementsByCondition(boolean condition) {
HashSet<Element> result = new HashSet<Element>();
for (Element element : elements)
if (Board.this.hasElement(element) && condition)
result.add(element);
return result.iterator();
}
ただし、ご覧のとおり、条件をパラメーターとしてメソッドに渡す方法がわかりません。
これがイテレータの作成方法であるかどうかもわかりません。
編集:
外部ライブラリの使用は許可されていません