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