我有一个作业,我必须制作杂货库存的价格。然后,我必须制作一个方法,其中存在包含这些物品的购物车,我必须找到总价。
这是商品HashMap
的片段,包含商品和价格:
HashMap<String, Double>stock= new HashMap<String, Double>();
stock.put("eggs",1.79);
stock.put("orange juice",2.5);
public static double price(HashMap<String, Double>stock){
HashMap<String, Integer>cart = new HashMap<String, Integer>();
cart.put("eggs", 2);
cart.put("orange juice", 2);
}
这是我的购物车,其中int表示购物车中每件商品的数量。我对HashMaps很新,我对如何将股票地图引用到价格方法并将其正确添加感到困惑。理论上,最终的答案是2个鸡蛋和2个橙汁盒的价格。并非常感谢帮助
答案 0 :(得分:1)
循环购物车条目,转换为订单项价格,然后求和。
您可以使用此流:
double total = cart.entrySet().stream()
.mapToDouble(entry -> entry.getValue() * stock.get(entry.getKey()))
.sum();
答案 1 :(得分:0)
试试这个
public static double price(HashMap<String, Double> stock){
HashMap<String, Integer> cart = new HashMap<String, Integer>();
cart.put("eggs", 2);
cart.put("orange juice", 2);
// the cart hashmap now contains all the items in our shopping cart
// we want to get the prices of all items in our cart, and multiple by the amount we are purchasing
double cost = 0;
for (String item: cart.keySet()) { // for every item we are purchasing
double amount = cart.get(item); // how much we are purchasing
double price = stock.get(item); // how much it costs
cost += amount * price; // update the total price
}
return cost;
}
答案 2 :(得分:0)
初学者,这段代码可能有所帮助。这是一种精心制作/详细的做事方式:
A<0>, ..., A<512>
答案 3 :(得分:0)
上面的人已经给你提供了代码片段,但我会根据Chris Bertasi的回答详细介绍一下,因为你是Hashmaps的新手,所以最容易阅读。
HashMap<String, Double>stock= new HashMap<String, Double>();
stock.put("eggs",1.79);
stock.put("orange juice",2.5);
这个代码片段的作用是创建一个Hashmap,您可以将其视为与具有两列的关系数据库类似。列是键和值。
我们附加的第一件事("eggs"
)是我们用来查找它所附加的内容的密钥(1.79
)然后同样的东西给OJ。导致Hashmap看起来像这样。
Item (Key) | Price (Value)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
egg | 1.79
orange juice | 2.5
因此,为了获得鸡蛋的价格,您只需使用stock.get("egg")
询问Hashmap,它就会返回值1.79
。
同样的逻辑应用于购物车,其数量而不是价格(例如返回2而不是1.79)。
因此,一旦我们将商品添加到购物车中,我们就会迭代它并获得总费用。
要迭代我们的库存,我们可以使用:
for (String item: cart.keySet())
这将通过密钥集(即密钥列)查看,并及时获取密钥,并将其设置为项目变量。
利用这些知识,我们可以通过股票和&amp;购物车以获取每件商品的价格和用户购买的金额。
double amount = cart.get(item);
double price = stock.get(item);
使用此信息,我们可以使用以下方式生成总费用:
totalCost += amount * price;
将这些拼凑在一起为我们提供了这个片段,我们遍历每个关键元素并通过.get()
方法检索价格和数量
double totalCost = 0;
for (String item: cart.keySet()) {
double amount = cart.get(item);
double price = stock.get(item);
totalCost += amount * price;
}
return totalCost;