我有一个包含一定数量商品的购物清单。通过用户输入,我想询问用户他们想要将多少相同的商品添加到他们的购物袋中。
例如:我有以下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;
}
}
我对编程很新,所以如果有更好的建议我会非常感激。