首页 > 解决方案 > 使用对象维护哈希图以避免重复的快速方法

问题描述

我实现了以下示例代码以减少创建新复杂对象的内存和时间复杂度。在这两种复杂性中,它都比初始复制方法工作得更快。我的实现如下:

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

这可以进一步优化吗?在这两种复杂性中。完全不同的方法也是可以接受的。

标签: javahashmaptime-complexityspace-complexity

解决方案


推荐阅读