据我所知,链表的概念是一堆对象,它们通过"下一个",有时是"前一个"属性来遍历对象.
我注意到在Java中,您可以创建一个LinkedList对象...但是使用相同的方法(如.add(),. get()等)将其视为数组/列表/序列.
那么,LinkedList内部是一个类似数组的序列吗?
Mic*_*rdt 13
那么,LinkedList内部是一个类似数组的序列吗?
不,这是一系列的私人嵌套类的实例Entry,其中有next,previous和element引用.请注意,您可以通过查看JDK附带的源代码自己找到它.
这种内部结构未暴露的原因是它防止结构被破坏并且例如包含环.通过List和Deque接口的统一访问允许多态使用.
Java 中的 LinkedList 就像您期望的那样工作。如果您使用官方的 Collections LinkedList,那么它确实是一堆通过 'next' 有时是 'previous' 相互连接的对象。
是的,它有一种get(int index)令人惊讶的方法,因为它不会非常有效,因为您需要从头开始并在列表中向上计数以找到第indexth 个条目,而这不是 LinkedLists 擅长的。之所以存在,是因为 LinkedList 实现了List接口。这是您可以使用所有列表的功能。
但是,当您对 LinkedList 的大部分访问是通过该get(int index)方法进行时,您可能会尽量避免使用它,因为这显然效率最低。使用ArrayList可能会更好。