package com.carrotsearch.hppc;
import com.carrotsearch.hppc.cursors.ShortCursor;
import com.carrotsearch.hppc.predicates.ShortPredicate;
import com.carrotsearch.hppc.procedures.ShortProcedure;
import java.util.Deque;
import java.util.Iterator;
/**
* A linear collection that supports element insertion and removal at both ends.
*
* @see Deque
*/
@com.carrotsearch.hppc.Generated(date = "2024-06-04T15:20:17+0200", value = "KTypeDeque.java")
public interface ShortDeque extends ShortCollection {
/**
* Removes the first element that equals e
.
*
* @return The deleted element's index or -1
if the element was not found.
*/
public int removeFirst(short e);
/**
* Removes the last element that equals e
.
*
* @return The deleted element's index or -1
if the element was not found.
*/
public int removeLast(short e);
/** Inserts the specified element at the front of this deque. */
public void addFirst(short e);
/** Inserts the specified element at the end of this deque. */
public void addLast(short e);
/**
* Retrieves and removes the first element of this deque.
*
* @return the head (first) element of this deque.
*/
public short removeFirst();
/**
* Retrieves and removes the last element of this deque.
*
* @return the tail of this deque.
*/
public short removeLast();
/**
* Retrieves the first element of this deque but does not remove it.
*
* @return the head of this deque.
*/
public short getFirst();
/**
* Retrieves the last element of this deque but does not remove it.
*
* @return the head of this deque.
*/
public short getLast();
/**
* @return An iterator over elements in this deque in tail-to-head order.
*/
public Iterator descendingIterator();
/** Applies a procedure
to all elements in tail-to-head order. */
public T descendingForEach(T procedure);
/**
* Applies a predicate
to container elements as long, as the predicate returns
* true
. The iteration is interrupted otherwise.
*/
public T descendingForEach(T predicate);
}