我实现了以下示例代码,以减少创建新的复杂对象的内存和时间。在两个复杂度上,它都比初始重复方法更快。我的实现如下:
public class ComplexObject{
//set of heavy maps and lists
public ComplexObject(int id, String param1, String param2){
//init set of maps - this costs higher process time
}
}
public class Test {
Map<String,ComplexObject> complexObjectMap= new HashMap<>();
public ComplexObject addObject(int id, String param1, String param2){
if(complexObjectMap.containsKey(id + param1 + param2)){
return complexObjectMap.get(id + param1 + param2);
}
else{
ComplexObject complexObject = new ComplexObject(id, param1, param2);
complexObjectMap.put(id+param1+param2,complexObject);
return complexObject;
}
}
}
可以进一步优化吗?在这两个复杂性中。完全不同的方法也是可以接受的。
您可以做一些改善支票可用性的操作,并参考Most efficient way to increment a Map value in Java提出