Java 集合中的队列类在哪里?

2022-09-01 16:36:00

我只看到一个队列接口,Java集合中没有队列类吗?


答案 1

Javadocs给出了实现.Queue

所有已知的实现类:

摘要QueueArrayBlockingQueueArrayDequeConcurrentLinkedQueueDelayQueueLinkedBlockingQueueLinkedBlockingDequeLinkedListPriorityBlockingQueuePriorityQueueSynchronousQueue

还有一些子接口,您可能会发现它们很有用:

所有已知子接口:

BlockingDeque<E>, BlockingQueue<E>, deque<E>


答案 2

队列有多个实现:来自 API:

所有已知的实现类:

AbstractQueue, ArrayBlockingQueue, ArrayDeque, ConcurrentLinkedQueue, 
DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedList, 
PriorityBlockingQueue, PriorityQueue, SynchronousQueue

请注意,AbstractQueue 不是一个具体的类。

其中一些来自包并发,所以如果你正在实现一个作业队列或类似的东西,你应该选择 ConcurrentLinkedQueue 或 PriorityBlockingQueue(对于堆)为 ex。


推荐