如何返回arraylist迭代器? (JAVA)

时间:2016-06-19 18:21:13

标签: java arraylist

我是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。我不需要这样做吗?或者我呢?

1 个答案:

答案 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??
}