我知道ArrayList的size-1可以是尾部,而ArrayList.get(0)可以是head,但是,我不确定ArrayList的自动调整大小特性是否会使LinkedList不是一个linkedList 。
另外,我很困惑,如果将ArrayList的索引实现为LinkedList,会发生什么。
答案 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”