package com.variableargs;
import java.util.HashMap;
import java.util.Map;
public class CalculationCache {
private static Map<String, Integer> resultCache = new HashMap<>();
public static int calculate(int... numbers) {
String key = arrayToString(numbers);
// 检查缓存中是否存在结果
if (resultCache.containsKey(key)) {
System.out.println("从缓存中获取结果");
return resultCache.get(key);
}
// 计算结果
System.out.println("进行复杂计算...");
int result = 0;
for (int num : numbers) {
result += num;
}
// 将结果存入缓存
resultCache.put(key, result);
return result;
}
private static String arrayToString(int[] numbers) {
StringBuilder sb = new StringBuilder();
for (int num : numbers) {
sb.append(num).append(",");
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(calculate(1, 2, 3)); // 进行复杂计算...
// 输出:6
System.out.println(calculate(1, 2, 3)); // 从缓存中获取结果
// 输出:6
System.out.println(calculate(4, 5, 6)); // 进行复杂计算...
// 输出:15
}
}