2017-06-11 140 views
0

我試圖創建具有唯一標識符(ID)的class product的實例。如何設置實例的唯一ID

該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

也許你可以添加一個方法,將'Product'的一個實例添加到'Inventory'的一個實例。這個方法會在'Product'的構造函數中被調用。如果還沒有完成,我建議你在'Product'類中寫一個'getter()'。 – Badda

+0

謝謝。 @Badda 是的,我已經做了一個getter。 –

回答

0

您可以修改Inventory類持有類似下面

HashMap<Integer, Product> products; 

在構造函數初始化它一個數據結構,然後你可以調用products.contains(<int id>) 。您需要相應地將新產品添加到此數據結構。

要正確有效地使用HashMap,您還需要閱讀有關覆蓋equals()hashcode()方法的信息。 HashMap給你O(1)插入和O(1)查找。

+0

HashMap,我不知道如何使用它,但我聽說過它。 謝謝,我會做我的研究。 :) –

相關問題