Why pass a reference to a local variable: recipe to the calculateCostOfRecipe method. It does not need it to access the Map.
The constructor should use VarArgs and not expect exactly 3 ingredients.added 9 constructors to take up to 10 ingredients