我是java编程的新手。我搜索了几篇与迭代器相关的帖子,但仍然无法弄清楚如何去做。
我有2节课。 订单和订单商品。
我需要实现接口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。我不需要这样做吗?或者我呢?
答案 0 :(得分:1)
您可以从 OrdemItem 列表中选择iterator
:
private List<OrderItem> items = new ArrayList<OrderItem>();
并且做:
public Iterator<OrderItem> iterator()
{
return items.iterator();
}
而不是
public Iterator<OrderItem> iterator()
{
return this.iterator(); //How to do this part??
}