是否有一个IdentityHashMap实现可维护插入顺序?

N K*_*N K 5 java collections dictionary guava

我需要一个HashMap,它(1)通过对象引用匹配键,并且(2)迭代时保持插入顺序

这些功能分别在IdentityHashMap和LinkedHashMap中实现。

有什么方法可以获取适合我需要的数据结构?Java标准或第三方库(例如Guava)中存在的一种,或者通过在LinkedHashMap上使用一些技巧来实现,以便它使用对象引用来匹配键?

Tav*_*nes 5

您可以使用番石榴Equivalence来实现此目的:

Equivalence<Object> equivalence = Equivalence.identity();
Map<Equivalence.Wrapper<Object>, Object> map = new LinkedHashMap<>();
map.put(equivalence.wrap(a), b);
Run Code Online (Sandbox Code Playgroud)