我有一个问题,我需要在映射中存储键、value1(float) 和 value2(非常长的字符串),其中 value1 可用于每个键,而 value2 仅可用于 1% 的键。
我能想到2个可能的解决方案
两张地图,如 map1 = map(key1 ,map(key2, value1)) 和 map2 = map(key1, map(key2,value2)) 优点 - 没有不必要的参考变量。缺点 - 存储相同的密钥两次浪费内存。
使用具有自定义对象值的地图。map1 = map customobj {浮点值1; string value2} pros - 没有重复键。缺点 99% 的 customobj 将具有 value2=null,因此将消耗内存用于引用指针。
基本上我的最终问题是未使用的引用(在 customobj 中)会消耗内存还是编译器会优化它?我倾向于解决方案 2,因为我不想通过存储相同的 key1 和 key2 两次来浪费内存。另一方面,99% 的时间 value2=null,这让我想知道 soln1 是否更好。
我正在使用 Java,我想听听一些建议。
编辑:我没有意识到我没有打印我发布的地图结构,我编辑了那个。key1 和 key2 都是字符串(主要是固定长度的 id 字符串)