为什么LinkedList在java中没有initialCapacity?

Max*_*tin 19 java arrays

我想知道为什么LinkedList没有initialCapacity.

我知道什么时候使用ArrayList,何时使用LinkedList.

定义Collection最终大小的好习惯如下:

List<String> arraylist = new ArrayList<String>(5);
Run Code Online (Sandbox Code Playgroud)

对于LinkedList例如:

List<String> linkedlist = new LinkedList<String>(); // right way
Run Code Online (Sandbox Code Playgroud)

List<String> arraylist = new LinkedList<String>(5); // compilation error
Run Code Online (Sandbox Code Playgroud)

有人可以就这个问题传播一下吗?

[编辑]

顺便说一句,我可以写

List<String> arraylist = new ArrayList<String>(5);
List<String> linkedlist = new LinkedList<String>(arraylist);
Run Code Online (Sandbox Code Playgroud)

Kim*_*imi 37

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

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

因为LinkedList没有容量,所以事先没有必要将内存分配给列表.


Hov*_*els 8

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