给定商品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)); } } }