我正在尝试用地图找出这种情况下最好和最有效的方法。它必须是一个数组。我做了一个虚拟的例子来解释这一点。
基本上,如果有一张地图包含一些 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;