マップを使用して、このシナリオの最善かつ最も効率的な方法を見つけようとしています。配列である必要があります。これを説明するためにダミーの例を作成しました。
基本的に、いくつかのsandwhich idとsandwhichの詳細で構成されるマップがあり、レタスのあるものだけを配列に入れたい場合。
配列の問題は、サイズがわかっている必要があることです。この場合、レタスのサンドウィッチがいくつあるかわかりません。配列リストを使用できますが、それを配列に変換する必要があります-これを非効率にするいくつかのコピー方法。
例:
//Assume that this map is given
Map<Integer, Sandwich> sandwiches = //some method gets all sandwiches
Meal[] meal = new Meal[sandwiches.size()];
for(Map.Entry<Integer, Sandwich> e : sandwiches.entrySet())
{
if(e.getValue().hasLettuce())
meal = new Meal(e.getValue);
}
//mandatory: An array must be returned
return meal;