在LinkedList类的java中的元素有索引吗?

pav*_*van 5 java collections

在LinkedList类的java中的元素有索引吗?如果是,那么当它可以直接使用对象的索引进行搜索时,为什么它的性能o(n)在最坏的情况下对于搜索操作?如果不是那么我们如何使用该void add(int index, Object item)方法在链表的中间插入一个对象?

Jon*_*eet 6

它们有一个逻辑索引,是 - 实际上是从头部开始,在到达该节点之前需要迭代的次数.

这与说"它可以直接使用对象的索引进行搜索"并不相同 - 因为它不能.

通常,索引的O(1)访问是通过使用数组查找来执行的,而在链表的情况下,没有数组 - 只有一个节点链.要访问索引为N的节点,您需要从头部开始并沿着链路走N次...这是一个O(N)操作.