【发布时间】:2011-04-22 18:20:41
【问题描述】:
关于List、Linkedlist和Arraylist,哪个是单向列表,哪个是双向链表? 我们如何才能扭转它?
【问题讨论】:
-
列表是接口。你确定你检查过 API 吗?
标签: java collections linked-list
关于List、Linkedlist和Arraylist,哪个是单向列表,哪个是双向链表? 我们如何才能扭转它?
【问题讨论】:
标签: java collections linked-list
ListArrayListList 实现,由array 支持。这不是linked list。LinkedListList 实现,由 doubly-linked list 的实现支持。如果你想要一个单链表,你必须自己写。
我应该指出,制作一个实现java.util.List 的单链表并不容易。它要求您拥有ListIterator<E>,而ListIterator 规范的一部分是您可以使用hasPrevious、previous 和previousIndex 方法在任一方向上遍历。所以要保持它既高效又忠实于单链表的口头禅将是非常困难的。
【讨论】:
您可以使用Collections.reverse(..) 反转任何集合。 LinkedList(和任何Deque)有descendingIterator()
【讨论】: