A Queue
可以以多种方式实现,a List
或a 也可以Set
.它们都只是为不同类型的集合指定合同.
ArrayList
然而,An 是a的特定实现,用于List
在内部使用数组来存储元素.LinkedList
也是a的实现List
,它使用一系列互连的节点,即双向链表.类似地,TreeSet
并且HashMap
分别是集合和映射的特定实现.
现在,这Stack
是一个奇怪的例子,特别是因为它是旧版Java的遗留类.你真的不应该再使用Stack
了; 相反,你应该使用它的现代等价物,ArrayDeque
.ArrayDeque
是一个Deque
(一个双端队列)的实现,它在内部使用一个数组进行存储(这就是做什么Stack
).一个Deque
支持所有的操作的Stack
,比如pop
,push
等的其他实现方式Deque
包括LinkedList
,正如别人所说,虽然这从偏离Stack
在底层它不是一个数组,而是一个双向链表:-P
现在,有很多实现Queue
和许多不同类型的Queue
s.你不仅有BlockingQueue
S(通常用于生产者-消费者),其共同实现包括LinkedBlockingQueue
和ArrayBlockingQueue
,而且TransferQueue
s和等等.我离题了......您可以在相关的Java教程中阅读有关集合API的更多信息.
归档时间: |
|
查看次数: |
1757 次 |
最近记录: |