是否可以使用arraylist实现链接列表?

时间:2013-10-20 21:34:30

标签: java arraylist linked-list implementation

我知道ArrayList的size-1可以是尾部,而ArrayList.get(0)可以是head,但是,我不确定ArrayList的自动调整大小特性是否会使LinkedList不是一个linkedList 。

另外,我很困惑,如果将ArrayList的索引实现为LinkedList,会发生什么。

1 个答案:

答案 0 :(得分:0)

你必须清楚自己这些结构是什么: (让我们简单谈谈单边循环列表)

  

链接列表是数据元素的线性集合,称为节点,每个都指向下一个节点。它是一组数据结构,由一组节点组成,它们共同代表一个序列。

因此,人们可以通过创建节点来创建这样的结构,节点保持与该类型的其他节点的链接,并且所有这些将包含在某些结构中,说出代码:

节点类:

class Node<T>{
         private Node next;
         private T data;
    //getters etc.
}

LinkedList类:

class LinkedList<T>{
   private Node<T> head;
   // size, iterators, etc.
}

和数组列表差异很大,

  

数组列表是一种随机访问,可变大小的列表数据结构,允许添加或删除元素

这个维基百科的引用不是很清楚,所以一般来说:它里面包含数组,如:

ArrayList类:

class ArrayList<T>{
  private T[];
  //size, iterators, etc.
}

此数组用于保存数据/访问数据。

所以它不是关于头,尾和索引,而是关于数据结构本身,甚至关于Java的实现,它都有具体的描述和可能性,所以如果你“使用数组列表实现链接列表”它就不会被链接list(但坦率地说,我无法想象如何用arraylist实现链表),夸大其词 - 它几乎与询问:“是否可以用Thread实现Integer”