用 Java 维护 Map 中的插入顺序
Java 中,需要维护键值对的插入顺序,同时避免哈希值的使用。这种需求源于需要以特定顺序迭代值的场景。
使用哈希表(将键值关联存储在哈希映射中并提供用于遍历的迭代器)被证明是有问题的。它不保证检索值的顺序。
为了解决这个问题,可以考虑使用 ArrayList 或 Vector 等替代方案,但它们缺乏基于键检索对象的功能。
输入 LinkedHashMap 和 TreeMap
两个类提供了这个问题的解决方案:LinkedHashMap 和TreeMap.
基于维护插入顺序而不需要排序的首要需求,LinkedHashMap 成为更好的选择。它对于 containsKey、get、put 和 remove 等操作表现出 O(1) 性能,而 TreeMap 具有 O(log n) 复杂度。
为了更广泛的兼容性和未来潜在的灵活性,建议合并 NavigableMap或 SortedMap 接口,其中包含 LinkedHashMap 和 TreeMap。这允许更通用的 API 设计,而无需暴露具体的实现细节。
以上是如何在不使用哈希的情况下维护 Java 映射中的插入顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!