0

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

此外,如果将 ArrayList 的索引实现为 LinkedList,我会感到困惑。

4

1 回答 1

0

您必须自己清楚这些结构是什么:(为简单起见,让我们谈谈单面未循环列表)

链表是数据元素的线性集合,称为节点,每个节点都指向下一个节点。它是由一组节点组成的数据结构,这些节点一起表示一个序列。

因此,可以通过创建节点来创建这样的结构,这些节点持有与该类型其他节点的链接,所有这些都将被包装在某种结构中,即代码:

节点类:

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

链表类:

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

而且和数组列表有很大不同,

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

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

数组列表类:

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

这个数组用于保存数据/访问数据。

所以它不是关于头、尾和索引,它是关于数据结构本身,甚至不是关于 Java 的实现,它有特定的描述和可能性,所以如果你“使用数组列表实现链表”它不会是链表(但是坦率地说,我无法想象如何用 arraylist 实现链表),夸大其词 - 这几乎与问:“是否可以用线程实现整数”相同

于 2017-02-23T14:01:15.887 回答