如何将重复值添加到ArrayList

时间:2016-11-20 20:54:39

标签: java arraylist

我有一个包含一定数量商品的购物清单。通过用户输入,我想询问用户他们想要将多少相同的商品添加到他们的购物袋中。

例如:我有以下ArrayList newProduct = {"apple","orange","banana"};。现在我想提示用户选择将newProduct中的哪些(以及多少)项添加到名为bag的第二个数组中。如果用户选择数量为2的苹果,则会将{2}个苹果添加到bag,它看起来像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;
    }
}

我对编程很新,所以如果有更好的建议我会非常感激。

1 个答案:

答案 0 :(得分:-1)

您可能必须使用clone()方法来获取副本,希望这会有所帮助Clone method for Java arrays