2

配列リストにデータを追加しようとしています。この結果では

[{Store={id_store=2, namestore=Kupat Tahu Singaparna , product=[{id_product=1, price=100000, quantity=1}]}}]

このコードを使用できます:

static ArrayList Storecart = new ArrayList(); 
LinkedHashMap store = new LinkedHashMap();
LinkedHashMap storeitem = new LinkedHashMap();
LinkedHashMap listproduct = new LinkedHashMap();
ArrayList prdct = new ArrayList(); 

storeitem.put("id_store",id_store);
storeitem.put("namestore",namestr ); 
listproduct.put("id_product", id_prodt);
listproduct.put("price",priced); 
listproduct.put("quantity", quantity); 

prdct.add(listproduct); 
storeitem.put("product", prdct);
store.put("Store", storeitem);
Storecart.add(store); 

配列リスト内のオブジェクトのインデックスを取得する必要があります。問題は、「オブジェクトストアとオブジェクト製品を取得する」の配列リストをループしてすべてのインデックスを見つけることができないことです。最良で効率的な解決策は何でしょうか。

4

1 に答える 1

1

他の人が示唆しているように、List.indexOf()を使用できます。

JavaリストAPI:indexOf()

これを頻繁に行うことを計画している場合は、おそらくオブジェクト参照にハンドルがあります。したがって、インデックスを作成するオブジェクトを拡張/ラップして、独自のインデックスを追跡することができます。具体的には、オブジェクトに最初に遭遇した順序などに基づいて、オブジェクトにインデックスを割り当てることができます。その場合、コレクション内のオブジェクトの順序は関係ありません。

さらに別の可能性として、マップを使用することもできると思います。次に、ArrayListではなくMapのみを操作します。

結論:多くの「indexOf()」リクエストを実行している場合、ArrayListはデータに最適なコンテナではない可能性があります。

于 2012-12-07T21:07:24.480 に答える