Inserts the specified element at the front of this deque unless it would
violate capacity restrictions. When using a capacity-restricted deque,
this method is generally preferable to the {@link #addFirst} method,
which can fail to insert an element only by throwing an exception.
@param e the element to add
@return {@code true} if the element was added to this deque, else
{@code false}
@throws ClassCastException if the class of the specified element
prevents it from being added to this deque
@throws NullPointerException if the specified element is null and this
deque does not permit null elements
@throws IllegalArgumentException if some property of the specified
element prevents it from being added to this deque
Inserts the specified element at the front of this deque unless it would violate capacity restrictions. When using a capacity-restricted deque, this method is generally preferable to the {@link #addFirst} method, which can fail to insert an element only by throwing an exception.
@param e the element to add @return {@code true} if the element was added to this deque, else {@code false} @throws ClassCastException if the class of the specified element prevents it from being added to this deque @throws NullPointerException if the specified element is null and this deque does not permit null elements @throws IllegalArgumentException if some property of the specified element prevents it from being added to this deque