【发布时间】:2012-05-15 12:19:50
【问题描述】:
我几乎完成了我的项目,尽管有一件事我无法克服。
让我先引用它:
Board 类还必须提供一个返回迭代器的方法,该迭代器将 返回板上的所有元素(不包括机器人携带的物品) 满足给定条件。条件的示例是所有具有 至少 1000 Ws 的能量(迭代器将不会返回墙壁或惊喜 盒子,因为它们没有已知的能量),某些子范围内的所有元素 板子,板上的所有项目等。
所以,我有一个带有元素的板。 (机器人、某些物品、墙壁……)
在课堂上我们已经看到了如何实现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();
}
但是,如您所见,我不知道如何将条件作为参数传递给方法。
我也不知道这是否是我创建迭代器的方式。
编辑:
我不允许使用任何外部库
【问题讨论】:
-
您只需要使用迭代器通过板子中的元素列表并手动检查条件(通过代码)
-
重点是不知道用户会要求什么条件。
-
看看番石榴
Iterators或Iterables(code.google.com/searchframe#UKMs0lhE9bg/trunk/src/com/google/…)的过滤方法 -
我不允许使用任何外部库 :(
标签: java eclipse parameter-passing