【发布时间】:2016-06-19 18:21:12
【问题描述】:
我是 Java 编程新手。我已经搜索了几篇与迭代器相关的帖子,但仍然无法弄清楚如何去做。
我有 2 节课。 Order 和 OrderItem。
我需要实现接口 Iterable<OrderItem> 才能使用 for-each 循环遍历项目。
public class OrderItem {
private Product product;
private int quantity;
public OrderItem(Product initialProduct, int initialQuantity)
{
this.product = initialProduct;
this.quantity = initialQuantity;
}
public Product getProduct()
{
return this.product;
}
public int getQuantity()
{
return this.quantity;
}
这是订单类
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Order implements Iterable<OrderItem> {
private List<OrderItem> items = new ArrayList<OrderItem>();
public Order()
{
}
public void addItem(OrderItem orderitem)
{
items.add(orderitem);
}
public Iterator<OrderItem> iterator()
{
return this.iterator(); //How to do this part??
}
public int getNumberOfItems()
{
return items.size();
}
}
这里What does it mean to return an iterator? Java 建议像我了解的链表一样这样做。 但我现在正在使用 ArrayList。我不需要这样做吗?还是我?
【问题讨论】:
-
返回
items.iterator()有什么问题? -
堆栈溢出错误
-
糟糕...我犯了一个愚蠢的错误。当我更改 items.iterator() 时似乎很好。感谢您的帮助!