Я реализовал следующий пример кода, чтобы уменьшить сложность памяти и времени при создании нового сложного объекта. Он работает быстрее, чем метод начальных дубликатов в обеих сложностях. Моя реализация выглядит следующим образом:
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;
}
}
}
Может ли это быть дополнительно оптимизировано? в обеих сложностях. Совсем другой подход также приемлем.