极兔速递面试题求指教

大致就是完善一个购物车,结算购物车金额的题,极其简单,但是我测试用例只过了50%
代码如下,哪个大佬能帮忙看看问题
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;

class Solution {

    // 购物车集合
    public Map<Product, Integer> cart;
    public Solution() {
        cart = new HashMap<>();
    }

    public void addProductToCart(Product product, int quantity) {
        cart.put(product,cart.getOrDefault(product,0)+quantity);
    }

    public void removeProduct(Product product) {
        cart.remove(product);
    }

    public String getTotalAmount() {
        BigDecimal amount =BigDecimal.ZERO;
        for (Map.Entry<Product, Integer> entry : cart.entrySet()) {
            String price = entry.getKey().getPrice();
            Integer quantity = entry.getValue();
            BigDecimal priceVal = new BigDecimal(price);
            BigDecimal temp = priceVal.multiply(new BigDecimal(quantity)).setScale(2,RoundingMode.HALF_UP);
            amount = amount.add(temp);
        }
        String totalamount = String.valueOf(amount);
        return totalamount;
    }
}

class Product {
    private String id;
    private String name;
    private String price;

    public Product(String id, String name, String price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getPrice() {
        return price;
    }

    public static void main(String[] args) {
        Product product=new Product("1","测试","2");
        Product product2=new Product("2","测试","2");
        Solution solution=new Solution();
        solution.addProductToCart(product,5);
        solution.addProductToCart(product,2);
        solution.addProductToCart(product2,1);
        System.out.println(solution.cart);
        System.out.println(solution.getTotalAmount());
    }
}
全部评论
没事了,笔试过了
点赞 回复 分享
发布于 昨天 15:33 上海

相关推荐

牛客44320985...:你的当务之急是把这个糖的要死的沟槽ide主题改了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务