In this last installment of The Developer's Guide to Collections, we will export the queue portion of the Java Collections Framework (JCF) and focus particularly on two types of data structures: Queues and double-ended queues (deque pronounced "deck"). This category of problem is so prolific, it has even been codified into a well-known problem for decades: The Producer-Consumer problem. For example, many concurrent (multi-threaded) applications require queues to process data or execute tasks. ![]() While these are important aspects of the Java ecosystem, the same importance of queues can be found at the micro-application level, as well. In recent years, queues have taken on an entirely new meaning with the acceptance of the Advanced Message Queuing Protocol (AMQP) and many of its implementations, such as RabbitMQ. The associated exception is thrown.Queues are an essential part of most software applications, whether in an isolated system or a widely-distributed, networked application. In only some of the elements having been successfully added when To call offer separately on each element.Īn exception encountered while trying to add an element may result When using a capacity-restricted deque, it is generally preferable In the order that they are returned by the collection's iterator. Of this deque, as if by calling addLast(E) on each one, Prevents it from being added to this deque NullPointerException - if the specified element is null and thisĭeque does not permit null elements IllegalArgumentException - if some property of the specifiedĮlement prevents it from being added to this dequeĪdds all of the elements in the specified collection at the end Time due to capacity restrictions ClassCastException - if the class of the specified element Specified by: add in interface Collection Specified by: add in interface Queue Parameters: e - the element to add Returns: true (as specified by Collection.add(E)) Throws: IllegalStateException - if the element cannot be added at this When using a capacity-restricted deque, it is generally preferable to IllegalStateException if no space is currently available. Immediately without violating capacity restrictions, returning (in other words, at the tail of this deque) if it is possible to do so Inserts the specified element into the queue represented by this deque ![]() Methods, but instead inherit the identity-based versions from class Null is used as a special return value by various methodsĭeque implementations generally do not defineĮlement-based versions of the equals and hashCode Take advantage of the ability to insert nulls. That do allow null elements are strongly encouraged not to To prohibit the insertion of null elements, they are stronglyĮncouraged to do so. While Deque implementations are not strictly required Provide support for indexed access to elements. Unlike the List interface, this interface does not This interface provides two methods to remove interior Note that the peek method works equally well whenĪ deque is used as a queue or a stack in either case, elements are Stack methods are equivalent to DequeĬomparison of Stack and Deque methods Stack Method When a deque is used as a stack, elements are pushed and popped from theīeginning of the deque. Interface should be used in preference to the legacy Stack class. Inherited from the Queue interface are precisely equivalent toĭeque methods as indicated in the following table:Ĭomparison of Queue and Deque methods Queue Methodĭeques can also be used as LIFO (Last-In-First-Out) stacks. Elements areĪdded at the end of the deque and removed from the beginning. Used as a queue, FIFO (First-In-First-Out) behavior results. This interface extends the Queue interface. The twelve methods described above are summarized in the The latter form of the insert operation isĭesigned specifically for use with capacity-restrictedĭeque implementations in most implementations, insert Special value (either null or false, depending on One throws an exception if the operation fails, the other returns a Each of these methods exists in two forms: Methods are provided to insert, remove, andĮxamine the element. ![]() This interface defines methods to access the elements at bothĮnds of the deque. They may contain, but this interface supports capacity-restrictedĭeques as well as those with no fixed size limit. Implementations place no fixed limits on the number of elements The name deque is short for "double ended queue"Īnd is usually pronounced "deck". A linear collection that supports element insertion and removal atīoth ends.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |