• HashMap案例_商品统计


    给定商品ID,商品名称Name,商品价格Price,商品数量Number,统计每个商品下的ID。

    结果如下:

    显示器  -->>  1  4
    鼠标  -->>  3
    主机  -->>  5
    键盘  -->>  2  6

    先创建商品类,代码如下

    public class Product {
        private String productId;
        private String productName;
        private float price;
        private int number;
        
    //    无参构造方法
        public Product() {  
        }
        
    //    有参构造方法
        public Product(String productId, String ProductName, float price, int number) {
            this.productId = productId;
            this.productName = ProductName;
            this.price = price;
            this.number= number;
        }
        
        public String getProductId() {
            return productId;
        }
    public String getProductName() {
            return productName;
        }
    public float getPrice() {
            return price;
        }
    public int getNumber() {
            return number;
        }

    下面代码进行商品统计:

    import java.util.HashMap;
    
    public class testProductCount {
        public static void main(String[] args) {
            
    //        构造几个Product对象,放入一个hashMap中
            Product p1 = new Product("1", "显示器", 20, 2);
            Product p2 = new Product("2", "键盘",   10, 2);
            Product p3 = new Product("3", "鼠标",  120, 2);
            Product p4 = new Product("4", "显示器", 20, 2);
            Product p5 = new Product("5", "主机",  120, 2);
            Product p6 = new Product("6", "键盘",  120, 2);
            
    //        构造一个HashMap,并放入数据,key是productId,value是Product对象
            HashMap<String, Product> pdtMap = new HashMap<String, Product>();
            pdtMap.put(p1.getProductId(), p1);
            pdtMap.put(p2.getProductId(), p2);
            pdtMap.put(p3.getProductId(), p3);
            pdtMap.put(p4.getProductId(), p4);
            pdtMap.put(p5.getProductId(), p5);
            pdtMap.put(p6.getProductId(), p6);
            
    //        找出hashmap中产品名称重复的数据,并打印出发生了重复的数据产品id:如 显示器  -->> 1,4//        思路:new一个HashMap,newMap遍历pdtMap中所有Product,判断name是否在newMap中,如果存在,newMap的value+1,
    //        如果name不在newMap中,则说明是新加入元素,newMap.put(name,1)
            
            HashMap<String, String> newMap = new HashMap<String, String>();
            
            //    遍历
            for(String str: pdtMap.keySet()) {
    //            取出pdtMap中的name
                String name = pdtMap.get(str).getProductName();
                if(newMap.containsKey(name)) {
                    newMap.put(name,newMap.get(name)+"  "+str);
                }else {
                    newMap.put(name,str);
                }
            }
            
            //    打印newMap的结果,,格式如 显示器 -->> 1,4
            for(String str: newMap.keySet()) {
                System.out.println(str+"  -->>  "+ newMap.get(str));
            }
            
        }
    
    }
  • 相关阅读:
    C数据结构2.1-线性表抽象数据类型
    转载的内容
    转载springboot的内容
    jQuery中的load()Failed to load resource: the server responded with a status of 404 Maven框架遇到的问题
    java代码发送邮箱源代码
    Error:(1, 10) java: 需要class, interface或enum的错误
    性能测试系列五 压测常见的关注指标以及监控分析工具
    面试官常考的Selenium Web自动化面试题总结(上篇)
    性能测试系列四 压测指标的来源
    性能测试系列三 压测方式简单总结
  • 原文地址:https://www.cnblogs.com/lucas-zhao/p/11878898.html
Copyright © 2020-2023  润新知