我是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。我不需要这样吗?还是我
最佳答案
您可以在此处从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??
}