package com.carrotsearch.hppc; import com.carrotsearch.hppc.cursors.IntCursor; import com.carrotsearch.hppc.predicates.IntPredicate; import com.carrotsearch.hppc.procedures.IntProcedure; 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 IntDeque extends IntCollection { /** * Removes the first element that equals e. * * @return The deleted element's index or -1 if the element was not found. */ public int removeFirst(int 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(int e); /** Inserts the specified element at the front of this deque. */ public void addFirst(int e); /** Inserts the specified element at the end of this deque. */ public void addLast(int e); /** * Retrieves and removes the first element of this deque. * * @return the head (first) element of this deque. */ public int removeFirst(); /** * Retrieves and removes the last element of this deque. * * @return the tail of this deque. */ public int removeLast(); /** * Retrieves the first element of this deque but does not remove it. * * @return the head of this deque. */ public int getFirst(); /** * Retrieves the last element of this deque but does not remove it. * * @return the head of this deque. */ public int 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); }