我需要一个HashMap
(1)通过对象引用匹配键,并且
(2)迭代时保持插入顺序
这些功能分别在IdentityHashMap和LinkedHashMap中实现。
有什么方法可以获取适合我需要的数据结构? Java标准或第三方库(例如Guava)中存在的一种,或者通过在LinkedHashMap上使用一些技巧来实现,以便它使用对象引用来匹配键?
最佳答案
您可以为此使用 Guava 的 Equivalence
:
Equivalence<Object> equivalence = Equivalence.identity();
Map<Equivalence.Wrapper<Object>, Object> map = new LinkedHashMap<>();
map.put(equivalence.wrap(a), b);