【发布时间】:2012-01-26 08:12:46
【问题描述】:
使用数组的链表有什么好处?
我已经读过,如果数据很大并且允许插入(例如,文本缓冲区),那么一个常见的中途措施是使用数组的链表。
但是没有解释使用这种结构有什么好处。
或者至少我没有得到它。
那么在什么时候使用数组的链表会有什么好处呢?
【问题讨论】:
-
你的问题很奇怪。当您需要数组的链表时,您可以使用数组的链表。很抱歉讽刺,但您也可以尝试询问使用 HashSet 数组或数组 Stream 的好处。
-
我明白你在说什么。我的问题是,在我正在阅读的与性能有关的材料中提到了这一点,它提到了这个数据结构(至少我是这样理解的)作为“技巧“在使用访问速度慢但插入和删除速度快的
linkedlist和恰恰相反的array之间。我认为这可能是我不知道的常见“技巧” -
为了快速插入、删除和访问,我们使用 Java 中的 ArrayList。不需要任何自定义数据结构,除非您需要一些需要该自定义结构的特定数据。
-
@Max 这不完全正确,您应该再次检查 javadoc。
ArrayList与 C++ 中的std::vector相同,它是一个非常薄的数组包装器,如果插入索引超过最初分配的大小,则整个数组将被重新分配和复制。这对于少量数据来说是不明显的,但是一旦你开始重新分配和复制几 GB,你就会明白要点......因此名称 Array List. -
@OP 你的意思是
LinkedList的ArrayList,对吧?您不想将 Java 集合与标准数组混为一谈,是吗?
标签: java arrays performance data-structures collections