如何在Java HashMap中基于产品类别获取产品详细信息?

Veerendar Chary Munigadapa

有HashMap。我在哈希图中添加了所有产品详细信息。我想显示基于类别的产品详细信息。这意味着应显示所有相同类别的产品。我正在尝试为此创建方法。方法名称是

public List<Product> getProductsBasedOnCategory(String category)
{

}

请找到下面的代码。

产品.java

public class Product {

    private long pid;
    private String pname;
    private String category;
    private float price;
    private long stock;
    private String remarks;

    public Product()
    {

    }

    public Product(long pid,String pname,String category,float price,long stock,String remarks){
        this.pid=pid;
        this.pname=pname;
        this.category=category;
        this.price=price;
        this.stock=stock;
        this.remarks=remarks;
    }
    public long getPid() {
        return pid;
    }
    public void setPid(long pid) {
        this.pid = pid;
    }
    public String getPname() {
        return pname;
    }
    public void setPname(String pname) {
        this.pname = pname;
    }
    public String getCategory() {
        return category;
    }
    public void setCategory(String category) {
        this.category = category;
    }
    public float getPrice() {
        return price;
    }
    public void setPrice(float price) {
        this.price = price;
    }
    public long getStock() {
        return stock;
    }
    public void setStock(long stock) {
        this.stock = stock;
    }
    public String getRemarks() {
        return remarks;
    }
    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

}

数据库类

public class DatabaseClass {

    private static Map<Long, Product> products=new HashMap<>();

    public static Map<Long, Product> getProduct()
    {
        return products;
    }

}

ProductDao.java

private Map<Long, Product> products=DatabaseClass.getProduct();

public ProductDaoImpl()
{
    products.put(1L, new Product(1L,"TV","Entertinement",10000F,250L,"This is best TV!"));
    products.put(2L, new Product(2L,"Computer","Technology",20000F,350L,"My Computer name Hp and SONY ViVo!"));
    products.put(3L, new Product(3L,"DeskTopComputer","Technology",15000F,150L,"My Desktop Computer name Accer and SONY ViVo!"));
}

//Get All products
public List<Product> getAllProducts() {

    return new ArrayList<Product>(products.values());
}

//Get product by product id
public Product getProduct(long pid) {

    return products.get(pid);
}

//To Add the products 
public Product addProduct(Product product) {
    product.setPid(products.size()+1);
    products.put(product.getPid(), product);
    return product;
}

//Update the product
public Product updateProduct(Product product) {
    if(product.getPid()<=0)
    {
        return null;
    }
    products.put(product.getPid(), product);
    return product;
}

// Delete the product
public Product deleteProduct(long pid) {

    return products.remove(pid);

}



//Get the product by category
public List<Product> getProductByCategory(String category) {

    if(products.size()<=0)
    {
        return null;
    }

    else if(category.equals(products.get(Product))
    {



    }

我正在努力尝试如何编写代码以获取HashMap中的模型类的价值。以及如何为上述getProductByCategory(String category)编写代码。

ernest_k

您可以遍历地图中的一组值,并进行过滤以返回匹配产品的列表:

public List<Product> getProductByCategory(String category) {

    if(products.size() == 0){
        return new ArrayList<>();
    }

    return this.products.values().stream()
       .filter(product -> product.getCategory().equals(category))
       .collect(Collectors.toList());
}

您也可以为此使用for循环:

public List<Product> getProductByCategory(String category) {

    List<Product> ret = new ArrayList<>();

    if(products.size() == 0){
        return ret;
    }

    for(Product p: this.products.values()) {
        if(p.getCategory().equals(category))
            ret.add(p);
    }

    return ret;
}

请注意,ArrayList如果产品图为空,我将返回一个空。这是集合返回类型更好的做法(而不是返回null

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在magento中获取当前产品的类别名称(在产品详细信息页面上)

如何从当前的WooCommerce产品类别中获取所有产品?

如何在插件文件中获取 Woocommerce 产品类别

如何获取当前订单商品的产品类别?

如何在管理单个产品编辑页面中获取产品类别自定义元字段的值?

如何从 Django 中基于类的详细信息视图中获取当前对象/产品?

如何从产品类别页面中删除价格?

如何从WooCommerce中的订单项获取产品类别ID

如何制作产品类别导航

如何仅标记产品类别?

如何在 WooCommerce 中根据产品类别和数量添加费用

如何在 Wordpress 中对齐来自 WooCommerce 的中心产品类别?

如何在woocommerce订单面板中创建产品类别列?

如何在Woocommerce中更改产品类别菜单?

如何在WooCommerce中检查某个产品类别是否为空?

如何在woocomerce产品类别部分中添加编辑器

如何在Wordpress中添加附加产品类别

如何在WHMCS发票模板文件invoicepdf.tpl中获取产品组详细信息?

电子商务; 如何创建用于计算的权重因子(基于产品类别)?

在Woocommerce订单详细信息中显示产品类别名称

Powershell:如何获取防病毒产品详细信息

如何为产品类别设置SQL表结构?

如何获得Woocommerce顶级产品类别?

如何根据产品类别自动设置交叉销售

如何从woocommerce的功能中排除产品类别?

如何在woocommerce中设置外部产品到该产品详细信息页面被绕过?

如何在侧边栏小部件中修改和设置WooCommerce产品类别计数NUMBER的样式

如何从产品页面转到产品详细信息页面

如何在订单项元中保存订单项产品类别?