为什么LinkedList在java中没有初始容量?

我想知道为什么没有.LinkedListinitialCapacity

我知道什么时候使用,什么时候使用。ArrayListLinkedList

定义集合最终大小的良好做法是:

List<String> arraylist = new ArrayList<String>(5);

例如:LinkedList

List<String> linkedlist = new LinkedList<String>(); // right way

List<String> arraylist = new LinkedList<String>(5); // compilation error

有人能在这个问题上传播一盏明灯吗?

[编辑]

顺便说一句,我可以写

List<String> arraylist = new ArrayList<String>(5);
List<String> linkedlist = new LinkedList<String>(arraylist);

答案 1

LinkedList 本质上没有“容量”,因为它在将项目添加到列表之前不会为项目分配内存。LinkedList 中的每个项目都有一个指向列表中下一个项目的指针。

http://www.stoimen.com/blog/wp-content/uploads/2012/06/0.-Arrays-vs.-linked-list.png

事先将内存分配给列表是没有意义的,因为LinkedList没有容量


答案 2

它的模型不是基于数组,而是基于一个真正的链表,因此没有必要,而且它没有意义。像有空数组项一样有空链接没有多大意义。