java - 是否有维护插入顺序的 IdentityHashMap 实现?

标签 java dictionary collections guava

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

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

有什么方法可以得到适合我需要的数据结构吗? Java 标准或第 3 方库(如 Guava)中存在的一种,或者可能在 LinkedHashMap 上使用一些技巧,以便它使用对象引用来匹配键?

最佳答案

您可以使用 Guava 的 Equivalence为此:

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

关于java - 是否有维护插入顺序的 IdentityHashMap 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33907109/

相关文章:

java - 拦截 WiFi 请求

dictionary - 检查sortedMap中的重复值

javascript - 如何可靠地检查对象是 EcmaScript 6 Map/Set?

swift - 删除单元格时的字典值 - 在展开可选值时意外发现 nil

c# - 为什么从 ConditionalWeakTable 中删除键时 IEnumerator.MoveNext 不抛出异常?

java - 显示文件夹中所有文件相对于该文件夹中遇到的第一个文件的路径

java - 从 GONE 到 VISIBLE 的 Android 可见性第一次不起作用

Java 2D 列表在第 6 个实体之后不会打印

java - 约束布局自定义页脚

python - Django: `MergeDict` 已弃用,请改用 `dict.update()`