2016-06-19 6 views
1

私はJavaプログラミングの新機能です。私はイテレータに関連するいくつかの記事を検索しましたが、それを行う方法をまだ理解できません。arraylistイテレータを返すには? (Java)

私は2つのクラスを持っています。 注文および注文アイテム。 for-eachループを使用して項目を繰り返し処理できるように、インターフェイスIterable<OrderItem>を実装する必要があります。

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

をやって'items.iterator()' ''? –

+0

Stackoverflowエラー –

+0

おっと...私はばかな間違いをしました。それはitems.iterator()を変更したときにうまくいくようです。助けてくれてありがとう! –

答えて

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?? 
} 
+0

ありがとうございました! –

+0

あなたは歓迎です:) –

関連する問題