如何为实例设置唯一ID

时间:2017-06-11 00:28:26

标签: java unique instance

我正在尝试创建具有唯一标识符(ID)的class product实例。

ID会像商店产品上的条形码一样,用户可能会在添加产品后更改ID。

这是我到目前为止所做的:

public class Product {

    private int id;
    //and some other attributes...

    public Product (int id){
        this.id = id;
    }


    public void setId(){
        this.Id = id;
    }

    //more not relevant methods...
    }

我正在考虑创建一个包含所有已创建产品的类:

public class Inventory{

    ArrayList<Product> products;
    //not sure if I should use product array or ID's array

    public Producto createProduct(int id){
        if (products.contains(/* product with id*/)){
            // not sure what to use here
        }
        else{
          return new Producto(id);
        }
    }

}

所以我不确定如何让它发挥作用,或者class Inventory是个好主意。

1 个答案:

答案 0 :(得分:1)

您可以修改Inventory类以保存如下所示的数据结构

HashMap<Integer, Product> products;

在构造函数中初始化它,然后您可以调用products.contains(<int id>)。您需要相应地将新产品添加到此数据结构中。

为了正确有效地使用HashMap,您还需要了解有关覆盖equals()hashcode()方法的信息。 HashMap为您提供O(1)插入和O(1)查找。