我试图在非常内存受限的环境中实现一个Map。我预计地图的值类型会有很多重复(即不仅仅是有很多x和y使得x.equals(y),而是许多x和y使得x == y)。因此,我想将这些指针保存在一个小数组中(通常情况下,少于几十个条目),并使用从字节数组中扩充出来的整数对其进行索引;通常这会导致大量节省。尽管如此,这需要通过某种方式来跟踪不同的引用。我可以在一些列表中对它们全部进行跟踪,并在每次添加新值时对其进行线性搜索,但这样地图不会缩放到超过几百个不同的值(即使大量不同的值价值是不常见的,这不是不可能的)。这种映射对于内部Java类来说应该很容易实现,因为它只需要进行指针比较,但是这个接口似乎没有公开(事实上,因为默认的Object hashCode方法只是返回底层的指针大多数实现中,我处于一个讽刺的地位,就是被实现hashCode的用户所伤害的Map实现者)。在Java中维护一组不同的对象
有没有办法得到这种行为?
IdentityHashMap? – MeBigFatGuy 2011-04-15 04:07:59