我几乎完成了我的项目,尽管有一件事我无法克服。
让我先引用它:
Board 类还必须提供一个返回迭代器的方法,该迭代器将返回板上满足给定条件的所有元素(不包括机器人携带的物品)。条件示例包括能量至少为 1000 Ws 的所有元素(迭代器将不会返回墙壁或惊喜盒子,因为它们没有已知能量)、棋盘某个子范围内的所有元素、棋盘上的所有项目, ETC。
所以,我有一个带有元素的板。(机器人、某些物品、墙壁……)
在课堂上我们已经看到了如何实现 Iterable,并在需要时重写方法 iterator(),但是现在我需要将条件作为参数传递给这个迭代器?
我最好的方法是在课堂上使用这种方法:
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();
}
但是,如您所见,我不知道如何将条件作为参数传递给方法。
我也不知道这是否是我创建迭代器的方式。
编辑:
我不允许使用任何外部库