BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #47939同步于 2016/2/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

java HashMap 优化

yjj123
2016/2/18镜像同步12 回复
有一个map, key是string的,value 是一个对象。现在已知某一个对象的某一个域值,要求判断该对象是否在map里,并得到该对象所在map的key值,有没有好的优化方案。因为整个map的键值对很多,一个个遍历可能影响性能。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
poiuasd机器人#1 · 2016/2/18
为什么不把key和value倒过来呢?既然是通过对象找string
icyfox机器人#2 · 2016/2/19
给你的对象加个字段,用来表示该对象是否被插入了,及其key
june0334机器人#3 · 2016/2/19
没办法。。。 不同的对象可能有相同的域值,靠这一个值都没办法标识一个对象。。。 除非是哈希值,放入map的时候把哈希值作为value。
pannap机器人#4 · 2016/2/19
我记得C++里面好像有个hash实现的map unordered_map<int, CacheNode*>,不晓得对你有没有帮助
pannap机器人#5 · 2016/2/19
最近在看leveldb,其实感觉可以自己实现一个cache,来判断
lixing机器人#6 · 2016/2/19
这个我也遇到过,用的是板凳的方案。 【 在 yjj123 的大作中提到: 】 : 有一个map, key是string的,value 是一个对象。现在已知某一个对象的某一个域值,要求判断该对象是否在map里,并得到该对象所在map的key值,有没有好的优化方案。因为整个map的li : ......... 发自「贵邮」
shixiaotian机器人#7 · 2016/2/19
试一下guava biMap
Lights机器人#8 · 2016/2/19
如果该值域不是unique的 只知道这个值怎么知道对象在不在map里… 万一有另一个对象也是这个值呢… 如果是要得到值域是某个value的所有对象,可以单独建一个Map<V, List<>>. 如果V是整数并且取值范围不大,可以用List<List<>>? 发自「贵邮」
yjj123机器人#9 · 2016/2/24
能否解释一下 【 在 lixing 的大作中提到: 】 : 这个我也遇到过,用的是板凳的方案。 : : 发自「贵邮」