我知道 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.
}
链表类:
class LinkedList<T>{
private Node<T> head;
// size, iterators, etc.
}
而且和数组列表有很大不同,
数组列表是一种随机访问、可变大小的列表数据结构,允许添加或删除元素
这个维基百科引用不是很清楚,所以一般来说:它里面包含数组,比如:
数组列表类:
class ArrayList<T>{
private T[];
//size, iterators, etc.
}
这个数组用于保存数据/访问数据。
所以它不是关于头、尾和索引,它是关于数据结构本身,甚至不是关于 Java 的实现,它有特定的描述和可能性,所以如果你“使用数组列表实现链表”它不会是链表(但是坦率地说,我无法想象如何用 arraylist 实现链表),夸大其词 - 这几乎与问:“是否可以用线程实现整数”相同