gpt4 book ai didi

java - java中最节省内存的 map

转载 作者:搜寻专家 更新时间:2023-11-01 01:54:37 24 4
gpt4 key购买 nike

我正在使用 Map 接口(interface)实现树状结构,如下面的声明:

Map<String, Map<String, Map<Integer, Double>>>

目前我正在使用HashMap 实现。加载大量数据后,我看到该程序消耗了 4GB 的 RAM。在使用 Serializable 接口(interface)持久化整个实体时,生成的文件大小仅为 1GB。

我可以在这里使用的内存效率最高的 Map 实现是什么?

最佳答案

如果您想将 (String,String,Integer) 映射到 Float,那么最好的办法是使用 Map<MyKey, Float> , 其中MyKey会这样定义:

public final class MyKey {
private final String a;
private final String b;
private final Integer c;

public MyKey(String a, String b, Integer c) {
this.a = a;
this.b = b;
this.c = c;
}

// getters, if needed

@Override
public int hashCode() {
return Objects.hash(a, b, c);
}

@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof MyKey)) {
return false;
}
MyKey other = (MyKey) o;
return Objects.equal(a, o.a)
&& Objects.equal(b, o.b)
&& Objects.equal(c, o.c);
}
}

关于java - java中最节省内存的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13551896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com