我正在尝试创建具有唯一标识符(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
是个好主意。
答案 0 :(得分:1)
您可以修改Inventory
类以保存如下所示的数据结构
HashMap<Integer, Product> products;
在构造函数中初始化它,然后您可以调用products.contains(<int id>)
。您需要相应地将新产品添加到此数据结构中。
为了正确有效地使用HashMap
,您还需要了解有关覆盖equals()
和hashcode()
方法的信息。 HashMap
为您提供O(1)插入和O(1)查找。