【问题标题】:How to return an arraylist iterator? (Java)如何返回一个数组列表迭代器? (爪哇)
【发布时间】:2016-06-19 18:21:12
【问题描述】:

我是 Java 编程新手。我已经搜索了几篇与迭代器相关的帖子,但仍然无法弄清楚如何去做。

我有 2 节课。 OrderOrderItem。 我需要实现接口 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() 时似乎很好。感谢您的帮助!

标签: java arraylist


【解决方案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??
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 2013-11-29
    • 2012-11-19
    • 2016-01-14
    • 2018-04-05
    相关资源
    最近更新 更多