第2版(较早的企业之一)的“totalSale”
public static int[] totalSale(int[] mac, int[] iphone, int[] ipad, int[] ipod){
不是最佳,但它是正确的。它会打印出正确的值。
尝试一下here。
的输出是:
总销售为0类别:$ 34500
总销售1类别:$ 9500
总销售2类:$四百三万一千七
总销售3类:$ 25920
考虑使用Map
。下面是使用 '地图' 的implmentation:
import java.util.HashMap;
import java.util.Map;
public class Test{
public static void main(String[] arguments) {
//map category to sales values
Map<String, int[]> salesMap = new HashMap<>();
//map category to sales totals
Map<String, Integer> totalSalesMap = new HashMap<>();
int[] mac = {11500,9000,13000,900,100};//total 34500
salesMap.put("Mac",mac);
int[] iphone = {1100,5000,3400,0,0};//total $9500
salesMap.put("Iphone",iphone);
int[] ipad = {900,4300000,0,800,0};
salesMap.put("Ipad",ipad);
int[] ipod = {0,300,120,500,25000};
salesMap.put("Ipod",ipod);
totalSalesMap = totalSale(salesMap);
//print totals:
for(String category : totalSalesMap.keySet()){
System.out.println("Total sale for category "
+ category + ": $" + totalSalesMap.get(category));
}
}
public static Map<String, Integer> totalSale(Map<String, int[]> salesMap){
//returned map holding sales totals
Map<String, Integer> totalSalesMap = new HashMap<>();
//iterate over sales map and sum values into totalSalesMap
for(String category : salesMap.keySet()){
int[] sales = salesMap.get(category);
int salesSum = sumArray(sales);
//add total to returned map
totalSalesMap.put(category, salesSum);
}
return totalSalesMap;
}
private static int sumArray(int[] array) {
int sum = 0;
for(int i : array) {
sum += i;
}
return sum;
}
}
你似乎是假设所有的数组'INT [] MAC,INT [] iphone,INT [] iPad上,INT [] ipod'具有相同的长度。是这样吗?他们代表什么? – Alain
@ lain对不起。我添加了示例输入值。但是阵列应该代表列出的日期的成本列表 – SSW
当您运行第一个版本时会得到什么错误? – Alain