2016-11-20 21 views
-1

私は、設定された数の項目を含む買い物リストを持っています。ユーザーからの入力を受けて、同じアイテムのどれくらいを買い物袋に入れたいかをユーザーに尋ねます。ArrayListに重複する値を追加する方法

例:私は以下のArrayList newProduct = {"apple","orange","banana"};を持っています。今度は、newProductの中のどの項目(どれくらい)をbagという2番目の配列に追加するかを選択するようにユーザーに促したいと思います。ユーザーが数量2のリンゴを選択すると、bagに2つのリンゴが追加され、次のようになります。bag = {"apple","apple"};

値を複製するオペランドを使用しようとしました。しかし、それはうまく動作しませんでした。これには何が問題なのですか?

import java.util.*; 
import java.util.stream.IntStream; 

public class Bag extends Price { 
    static Scanner input = new Scanner(System.in); 

    @SuppressWarnings("unused") 
    private static String newName; 
    private int choice; 

    public ArrayList<String> bag = new ArrayList<String>(); 
    public List<Double> bagPrice = new ArrayList<Double>(); 

    public void addProduct() { 
     Bag item = new Bag(); 
     while (sum(bagPrice) <= 58.00) { 
      System.out.println("Choose a Priority"); 
      item.choice = input.nextInt(); 

      System.out.println("Choose Quantity"); 
      int quantity = input.nextInt(); 

      if (IntStream.of(newPriority).anyMatch(x -> x == item.choice)) { 
       item.bag.add(newProduct.get(item.choice)); 

       System.out.print("PRICE $ " + Double.valueOf(formatter.format(price.get(item.choice - 1)))); 

       bagPrice.add(price.get(item.choice - 1)); 

       System.out.println("BAG: " + item.bag); 
       System.out.println("TOTAL : " + Double.valueOf(formatter.format(sum(bagPrice)))); 
      } else { 
       System.out.println("Priority Does Not Exist"); 
      } 
     } 
    } 

    public double sum(List<Double> bagPrice) { 
     double sum = 0.00; 
     for (double s : bagPrice) { 
      sum = sum + s; 
     } 
     return sum; 
    } 
} 

私はかなりプログラミングに新しいので、良い提案があれば、私はそれを高く評価します。あなたがコピーを入手するにはclone()メソッドを使用する必要があります

+3

参考になる、より良いセットアップが同じように製品名を使用しています 'Map'を使用することです願っていますキー、および量を値として使用します。 – Carcigenicate

+0

あなたがここで何を求めているかは本当に明確ではありません。あなたの完全なコードを表示できますか?特に、 'Bag'、' sum() '、' newPriority'が定義されています。 –

+1

これは割り当てのようです。しかし、私はあなたにこの運動を与えた人は、あなたが彼が何を意味すると思ったのかを意味するものではありませんでした。もう一度指示をよく読んで、その後にHashMap を使用してください。 – auval

答えて

関連する問題