欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA中,定义了一个物品集合,如何通过一个商品的编号得到该商品的所有信息。

程序员文章站 2022-03-20 11:16:26
...

定义了一个商品集合,有商品编号goodsId,商品名称name,商品价格price,商品单位util,商品数量num,现在想通过一个商品编号来查询一个商品的所有信息,例如查找商品编号为1001的,就输出商品1001的编号、名称、价格、单位、数量。该怎么实现?

javabean思想

public static void main(String args[]) {

    //模拟10个不重复的商品加入集合
    HashSet<Product> data = new HashSet<>();
    Random random = new Random();
    for (int i = 0; i < 10; i++) {
        int goodsId = random.nextInt(100);
        boolean isAdded = data.add(new Product(goodsId, goodsId + "name", goodsId, "util", goodsId));
        if (!isAdded) {
            i--;
        }
    }
    
    //如果知道一个id,得到所有信息?
    //将这个data转化为map,键为id值为javabean
    HashMap<Integer, Product> hashMap = new HashMap<>();
    for (Product item : data) {
        hashMap.put(item.goodsId, item);            
    }
    
    //拿到id,get就行了
    hashMap.get(??);
 
}
class Product {
    /**
     * 商品编号
     */
    int goodsId;

    /**
     * 商品名称
     */
    String name;

    /**
     * 商品价格
     */
    double price;

    /**
     * 商品单位
     */
    String util;

    /**
     * 商品数量
     */
    double num;

    public Product(int goodsId, String name, double price, String util, double num) {
        this.goodsId = goodsId;
        this.name = name;
        this.price = price;
        this.util = util;
        this.num = num;
    }

    @Override
    public boolean equals(Object obj) {
        return this.goodsId == ((Product) obj).goodsId;
    }

    @Override
    public String toString() {
        return "Product{" +
                "goodsId=" + goodsId +
                ", name='" + name + '\'' +
                ", price=" + price +
                ", util='" + util + '\'' +
                ", num=" + num +
                '}';
    }
}