Быстрый способ поддерживать хэш-карту с объектами, чтобы избежать дублирования - PullRequest
2 голосов
/ 06 марта 2020

Я реализовал следующий пример кода, чтобы уменьшить сложность памяти и времени при создании нового сложного объекта. Он работает быстрее, чем метод начальных дубликатов в обеих сложностях. Моя реализация выглядит следующим образом:

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;
        }
    }
}

Может ли это быть дополнительно оптимизировано? в обеих сложностях. Совсем другой подход также приемлем.

...