2017-01-24 10 views
-2

をArrayListに追加します。私は今の製品(itemNumber、価格)とショップ(セット)があり、 クラスの製品http://pastebin.com/LUWVzkNj
クラスショップhttp://pastebin.com/XLRwBfrQ
クラスカートhttp://pastebin.com/jqZcH4HK
セット内の要素を検索し、参考のために

itemNumberを使用して商品を検索し、この商品をCart(ArrayList)に追加したいと考えています。このためには、find productというメソッドを作成する必要があります。

  1. を、製品を見つけようと、カート(==または等しいが正しいかどうかわからない)に追加するforループの使用::

    public void findProduct(int ItemNumber){ 
    for (Product item : item) 
    {if (item.getItemNumber() == itemNumber) 
    {add();} 
    
  2. を私が試してみましたが、完了できませんでした物事
  3. 製品

    public void findProduct(int itemNumber) 
    {for(Iterator<Product> it = products.iterator(); it.hasNext();) 
    {Product p = it.next(); 
    if (p.equals(new Product())) 
    //add this product}} 
    
  4. チェックを見つけるためのセットを繰り返しセットは、itemNumberが与えられ、その後、この製品

    を追加含まれている場合
    public void findProduct(int itemNumber) 
    {if (products.contains(itemNumber)) 
    {//add this product; }} 
    

は、私はあなたがArrayListにセットからの要素を追加することができたり、セットリスト内の特定の要素を見つけることができる場合は手助けするのに十分な特異的であったものか、何を見つけることができなかった場合、Googleしてみました私を出す。だから私はそれらのいずれかが実際にそれらを完了するために管理したらうまくいくかと思いますか?

+2

おそらくmerhod 'findProduct'は何かを返すべきです(void以外)? – vikingsteve

答えて

1

あなたの最初のアプローチは、同時にシンプルかつ有効であるが、あなたは、いくつかのより多くの制御が必要になります。

public void findProduct(int ItemNumber){ 
    for (Product item : item) { 
     if (item.getItemNumber() == itemNumber){ 
     cart.add (item) 
     break; //to leave the loop once it's found 
    } 

カートはあなたのArrayList

1

あなたの最初のバージョンが可能です。しかし、あなたのための-each-ループは動作しません。

public void findProduct(int itemNumber){ 
    for (Product item : shop) { 
     if (item.getItemNumber() == itemNumber){ 
     cart.add(item) 
     break; 
    } 

cartはあなたのリストであるとshopはあなたのセットです。

関連する問題