想象一下我有一个巨大的值列表
123
567
2355
479977
....
这些是按升序排列的
所以
123 - 1
567 - 2
2355 - 3
479977 - 4
...
我想要一个单个对象,让我可以访问该值的订单号(1或2或3 ...)以及实际值(123或567)或...) 的订单号。这样的结构存在吗?
编辑:插入和删除应该是可能的。 如果我有 2 个 Hashmap,我需要两倍的内存,并且必须执行两次操作。
最佳答案
您可以维护 ArrayList<Integer>
它具有 O(1) 索引查找来存储所有整数和 (index -> int) 关系以及 HashMap<Integer, Integer>
它还具有 O(1) 查找来存储 (int -> index) 关系。
这样做,每个查找方向的时间复杂度为 O(1)。
关于java - 拥有庞大的数字列表和具有唯一订单号的订单,如何使两者都可访问 O(1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27867800/