极兔速递面试题求指教

大致就是完善一个购物车,结算购物车金额的题,极其简单,但是我测试用例只过了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());
    }
}
全部评论
刚写完笔试,同21届,五年社招了鸟公司还要写笔试
点赞 回复 分享
发布于 03-16 22:19 福建
你这个是什么岗位啊
点赞 回复 分享
发布于 03-15 17:22 湖北
没事了,笔试过了
点赞 回复 分享
发布于 03-13 15:33 上海

相关推荐

03-11 20:19
已编辑
门头沟学院 Java
太压力了,面了2个多小时,本菜比已经被拷打的瑟瑟发抖面完两个小时后通知过了1.算法题三道(1)leetcode124&nbsp;二叉树中最大路径和hard题&nbsp;因为不久前才刷过撕出来了,又来了一道(2)leetcode&nbsp;300&nbsp;最长递增子序列变种除了递增之外还加了一个权重因素,但是思路没变,dp就行(3)寻找词汇库里符合固定长度前缀的匹配单词应该是他们自己题库的题。给了一串单词列表,然后又给了一个单词,一个下标,根据这个下标的前缀去单词列表里面找到所有匹配的单词再返回思路是创建一个单词前缀树,然后根据树找,但是可能是构件树数有问题没撕出来2.全方位项目拷打基本没有问八股,全部都是项目企业场景题,哎哟我操,完全不会。我就纯八股战士,结果没想到一道八股都没问反正尽可能把企业场景往八股上引吧。。1.&nbsp;微服务多点部署其中一个宕机了怎么办2.&nbsp;要是mq占据大量CPU该怎么排查?MySQL占据大量CPU该怎么排查?3.&nbsp;假如说让你实现视频点赞功能,你打算怎么设计?讲讲思路(我知道多级缓存,但是碰巧没背……寄)4.&nbsp;Redis延迟双删是什么,分布式锁,哨兵模式5.&nbsp;MySQL到es同步的延迟该怎么优化6.&nbsp;Rabbit&nbsp;mq的队列是怎么实现的?(这个完全没整明白,可能是队列的底层结构?&nbsp;反正我硬扯的讲了一下rabbit&nbsp;mq的架构)还扯了很多,但是往后完全就慌了),记住的是这些
不知道怎么取名字_:2小时确实有压力,持续性的脑力劳动啊
查看9道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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