你什么时候使用 java.util.LinkedList

sac*_*rav 7 java

可能的重复:
何时在 ArrayList<> 上使用 LinkedList<>?

这是一种真正了解何时使用 LinkedList 的尝试;

据我了解,由于 java.util.LinkedList 不支持随机访问,获取第 n 个元素的唯一方法是从 1 跳到 (n-1) 或使用本身效率很低的 get(n)。那么为什么要使用 LinkedList 呢?除非您想使用 ListIterator 从双方迭代集合,否则 ArrayList 将在大部分情况下使用?

Luk*_*der 6

想想这个方法:

List list = // choose your list here
list.add(0, new Object());
Run Code Online (Sandbox Code Playgroud)

对于大型列表,LinkedList将大大优于ArrayList. 同样适用于

list.remove(0);
Run Code Online (Sandbox Code Playgroud)

...以及许多其他方法。有关更多信息,我建议阅读有关java.util.Deque接口的信息,该接口也由LinkedList

  • @sachinrahulsourav:查看`remove(int)` 的源代码。`ArrayList` 执行对 `System.arraycopy` 的调用,而 `LinkedList` 只是更新一些引用......在接口中声明不会影响实现事实......除此之外,请注意 `remove(int)`没有在`Iterator` 中声明,而是在`List` 中声明... (2认同)