我需要一个具有O(1) indexOf操作的有序数据结构。我在数据结构中存储对象指针。有什么想法吗?某种类型的LinkedHashMap?
请参见"indexOf"的含义:
请参见"indexOf"的含义:
List.indexOf(Object)
List.indexOf(Object)
indexOf(..)
操作是什么意思,那会很好。indexOf(..)
是集合唯一的职责吗?Object
或具有索引列表的键。HashMap<Object, List<Integer>>
再次强调,这个描述比较模糊,如果您能具体说明您要解决的问题的性质,可能会更有帮助。
如果您使用跳表或平衡树,您可以在insert
和indexOf
中获得O(log n)的时间复杂度。
如果您维护一个已排序的List<Object>
来存储要跟踪的项目,以及一个HashMap<Object, Integer>
来存储每个项目的起始位置,您可以在O(n) insert
的代价下获得O(1)的indexOf
。
我没有深入思考过,但我认为不可能同时实现O(1)的insert
和O(log n)的indexOf
。
将对象作为键和值存储在HashMap中。我假设您最终想要检索对象。
尝试使用PriorityQueue代替,使其有序...