我是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??
}

10-08 08:33