与对象一起维护哈希图的快速方法,避免重复项

问题描述 投票:2回答:1

我实现了以下示例代码,以减少创建新的复杂对象的内存和时间。在两个复杂度上,它都比初始重复方法更快。我的实现如下:

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

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

java hashmap time-complexity space-complexity
1个回答
1
投票

您可以做一些改善支票可用性的操作,并参考Most efficient way to increment a Map value in Java提出

© www.soinside.com 2019 - 2024. All rights reserved.