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

Java 是否可以使用arraylist实现链表?,java,arraylist,linked-list,implementation,Java,Arraylist,Linked List,Implementation,我知道ArrayList的size-1可以是尾部,而ArrayList.get(0)可以是头部,但是,我不确定ArrayList的自动调整大小特性是否会使LinkedList不是LinkedList 此外,如果将ArrayList实现为LinkedList,我对它的索引会发生什么情况感到困惑。您必须清楚这些结构是什么: (为了简单起见,让我们谈谈单面非循环列表) 链表是数据元素的线性集合,称为节点,每个节点指向下一个节点。它是由一组节点组成的数据结构,这些节点共同表示一个序列 因此,我们可以通过

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


此外,如果将ArrayList实现为LinkedList,我对它的索引会发生什么情况感到困惑。

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

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

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

节点类:

class Node<T>{
         private Node next;
         private T data;
    //getters etc.
}
类节点{
私有节点下一步;
私有T数据;
//吸气剂等。
}
LinkedList类:

class LinkedList<T>{
   private Node<T> head;
   // size, iterators, etc.
}
class ArrayList<T>{
  private T[];
  //size, iterators, etc.
}
类链接列表{
专用节点头;
//大小、迭代器等。
}
和数组列表有很大不同

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

wikipedia的这段引用不是很清楚,所以一般来说:它包含数组,类似于:

ArrayList类:

class LinkedList<T>{
   private Node<T> head;
   // size, iterators, etc.
}
class ArrayList<T>{
  private T[];
  //size, iterators, etc.
}
类数组列表{
私人T[];
//大小、迭代器等。
}
该数组用于保存数据/访问数据


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

你能澄清你的问题吗?“用数组列表实现链表”是什么意思?当然!我所说的“用数组列表实现链表”是指“使用ArrayList从头开始创建链表是否可行?您可以将
ArrayList
复制到
ArrayList
中,但使用
ArrayList
作为
LinkedList
的数据结构是毫无意义的。我同意路易斯!然而,这是一项任务,以巩固人们对这些数据结构如何工作的理解。我在寻找更多的可能性