ArrayListフィールドと、追加されたIDを追跡するように設定された整数を持つProductListクラスを作成します。アイテムを追加するときに、セットにアイテムのIDがすでに含まれているかどうかを確認します。そうでない場合は、ArrayListに項目を追加します。したがって、これは基本的にArrayListの周りをきちんとラップします。ここで私はそれを行うだろうかです:あなたはその後、自分の他のクラスで
ProductList stock = new ProductList();
とstock.addProduct(Product item);
を使用することができます
public class ProductList{
...
private ArrayList<Product> list = new ArrayList<Product>();
private Set<Integer> ids = new Set<Integer>();
...
public void addProduct(Product product){
if(!ids.contains(product.getID())){
list.add(product);
ids.add(product.getID());
}
}
public Product removeProduct(Product product){
if(!list.contains(product)) return null;
ids.remove(product.getID());
return list.remove(product);
}
...
}
。
リストを非常に幅広く使用すると思われる場合は、データフィールドと統合するための実用的なコンストラクタを作成することも非常に便利です。
これは抽象化の観点から非常に優れたアプローチですが、それを実行する最も効率的な方法ではないでしょう。
Ummm ...そのコードは有効なjavaではありません。再試行する。 –
@radderは、 'ストック'のタイプをSetに変更するために開いていますか?これはあなたの問題を解決します。 – Santosh
メンバーが含まれていて、特定のメンバーにアクセスする方法がわからない、タイプがProductのオブジェクトがあることを意味しますか? –