Class CharDeque

java.lang.Object
com.github.tommyettinger.ds.CharList
com.github.tommyettinger.ds.CharDeque
All Implemented Interfaces:
Arrangeable, Ordered.OfChar, PrimitiveCollection<Character>, PrimitiveCollection.OfChar, Appendable, CharSequence, Comparable<CharList>, RandomAccess

A resizable, insertion-ordered double-ended queue of primitive char with efficient add and remove at the beginning and end. This extends CharList and supports RandomAccess. Like CharList, it is a PrimitiveCollection.OfChar, Arrangeable, and Ordered.OfChar. Values in the backing array may wrap back to the beginning, making add and remove at the beginning and end O(1) (unless the backing array needs to resize when adding). Deque functionality is provided via removeLast() and addFirst(char).
Unlike most Deque implementations in the JDK, you can get and set items anywhere in the deque in constant time with get(int) and set(int, char). Relative to a CharList, get(int) has slightly higher overhead, but it still runs in constant time. Unlike ArrayDeque in the JDK, this implements equals(Object) and hashCode(). This can provide what are effectively ListIterators for iteration from an index or in reverse order.
Unlike ArrayDeque or ArrayList, most methods that take an index here try to be "forgiving;" that is, they treat negative indices as index 0, and too-large indices as the last index, rather than throwing an Exception, except in some cases where the CharDeque is empty and an item from it is required. An exception is in set(int, char), which allows prepending by setting a negative index, or appending by setting a too-large index. This isn't a standard JDK behavior, and it doesn't always act how Deque or List is documented.
Some new methods are present here, or have been made public when they weren't before. removeRange(int, int), for instance, is now public, as is resize(int). New APIs include Deque-like methods that affect the middle of the deque, such as peekAt(int) and pollAt(int). There are more bulk methods that work at the head or tail region of the deque, such as addAllFirst(OfChar) and truncateFirst(int). There are the methods from Arrangeable, and many default methods from PrimitiveCollection and Ordered.
In general, this is an improvement over ArrayDeque in every type of functionality, and is mostly equivalent to CharList as long as the performance of get(int) is adequate. Because it is array-backed, it should usually be much faster than LinkedList, as well; only periodic resizing and modifications in the middle of the List using an iterator should be typically faster for LinkedList.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    A CharIterator over the elements of a CharDeque.

    Nested classes/interfaces inherited from class com.github.tommyettinger.ds.CharList

    CharList.CharListIterator

    Nested classes/interfaces inherited from interface com.github.tommyettinger.ds.Arrangeable

    Arrangeable.ArrangeableList<T>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    char
    The value returned when nothing can be obtained from this deque and an exception is not meant to be thrown, such as when calling peek() on an empty deque.
     
     
    protected int
    Index of first element.
    protected int
    Index of last element.

    Fields inherited from class com.github.tommyettinger.ds.CharList

    items, iterator1, iterator2, size
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new CharDeque which can hold 16 values without needing to resize the backing array.
    CharDeque(char[] a)
    Creates a new CharDeque using all the contents of the given array.
    CharDeque(char[] a, int offset, int count)
    Creates a new CharDeque using count items from a, starting at offset.
    CharDeque(int initialSize)
    Creates a new CharDeque which can hold the specified number of values without needing to resize the backing array.
    Copies the given CharDeque exactly into this one.
     
    CharDeque(Ordered.OfChar other, int offset, int count)
     
    Creates a new CharDeque using all the contents of the given Collection.
    Creates a new instance containing the items in the specified iterator.
     
    CharDeque(CharSequence other, int start, int end)
    Creates a new CharDeque from part of another CharSequence; start is inclusive and end is exclusive.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    add(char t)
    Inserts the specified element into the deque represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning true upon success and throwing an IllegalStateException if no space is currently available.
    void
    add(char value1, char value2)
     
    void
    add(char value1, char value2, char value3)
     
    void
    add(char value1, char value2, char value3, char value4)
     
    boolean
    addAll(char[] array)
    Exactly like addAll(OfChar), but takes an array instead of a PrimitiveCollection.OfChar.
    boolean
    addAll(char[] array, int offset, int length)
    Like addAll(char[]), but only uses at most length items from array, starting at offset.
    boolean
    addAll(int index, char[] array)
    Like addAll(int, OfChar), but takes an array instead of a PrimitiveCollection.OfChar and inserts it so the first item will be at the given index.
    boolean
    addAll(int index, char[] array, int offset, int length)
    Like addAll(int, OfChar), but takes an array instead of a PrimitiveCollection.OfChar, gets items starting at offset from that array, using length items, and inserts them so the item at the given offset will be at the given index.
    boolean
    addAll(int index, Ordered.OfChar ord)
    Like addAll(int, OfChar), but takes an ord instead of a PrimitiveCollection.OfChar and inserts it so the first item will be at the given index.
    boolean
    addAll(int index, Ordered.OfChar ord, int offset, int length)
    Like addAll(int, OfChar), but takes an array instead of a PrimitiveCollection.OfChar, gets items starting at offset from that array, using length items, and inserts them so the item at the given offset will be at the given index.
    boolean
     
    boolean
     
    boolean
    addAll(CharList list, int offset, int count)
     
    boolean
    Exactly like addAll(OfChar), but takes an Ordered.OfChar instead of a PrimitiveCollection.OfChar.
    boolean
    addAll(Ordered.OfChar ord, int offset, int length)
    Like addAll(char[]), but only uses at most length items from ord, starting at offset.
    boolean
    Adds all the elements in the specified collection at the end of this deque, as if by calling addLast(char) on each one, in the order that they are returned by the collection's iterator.
    boolean
    addAllFirst(char[] array)
    Exactly like addAllFirst(OfChar), but takes an array instead of a PrimitiveCollection.OfChar.
    boolean
    addAllFirst(char[] array, int offset, int length)
    Like addAllFirst(char[]), but only uses at most length items from array, starting at offset.
    boolean
    Exactly like addAllFirst(OfChar), but takes an ord instead of a PrimitiveCollection.OfChar.
    boolean
    addAllFirst(Ordered.OfChar ord, int offset, int length)
    Like addAllFirst(Ordered.OfChar), but only uses at most length items from ord, starting at offset.
    boolean
    Adds every item in c to this in order at the start.
    boolean
    addAllLast(char[] array)
    An alias for addAll(char[]).
    boolean
    addAllLast(char[] array, int offset, int length)
    boolean
    boolean
    addAllLast(Ordered.OfChar ord, int offset, int length)
    boolean
    An alias for addAll(OfChar), this adds every item in c to this in order at the end.
    void
    addFirst(char value)
    Prepend given value to the head (enqueue to head).
    void
    addFirst(char value1, char value2)
     
    void
    addFirst(char value1, char value2, char value3)
     
    void
    addFirst(char value1, char value2, char value3, char value4)
     
    void
    addLast(char value)
    Appends given char to the tail (enqueue to tail).
    void
    addLast(char value1, char value2)
     
    void
    addLast(char value1, char value2, char value3)
     
    void
    addLast(char value1, char value2, char value3, char value4)
     
    append(boolean value)
    Appends either the four chars 't', 'r', 'u', 'e' if value is true, or the five chars 'f', 'a', 'l', 's', 'e' if it is false.
    append(char c)
     
    append(double number)
    Appends the base-10 decimal or engineering textual form of the given number, without allocating.
    append(float number)
    Appends the base-10 decimal or engineering textual form of the given number, without allocating.
    append(int number)
    Appends the base-10 signed textual form of the given number, without allocating.
    append(long number)
    Appends the base-10 signed textual form of the given number, without allocating.
     
    append(CharSequence csq, int start, int end)
     
    Appends a literal newline (Unicode character u000A).
    char
    assign(int index, char item)
    Replaces the element at the specified position in this list with the specified element.
    void
    Removes all values from this deque.
    boolean
    contains(char o)
    Returns true if this deque contains the specified element.
    boolean
    Returns true if this CharList contains, at least once, every item in other; otherwise returns false.
    Returns an iterator over the elements in this deque in reverse sequential order.
    descendingIterator(int index)
    Returns an iterator over the elements in this deque in reverse sequential order.
    boolean
    duplicateRange(int index, int count)
    Inserts the specified number of items at the specified index.
    char
    Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque).
    char[]
    ensureCapacity(int additional)
    Increases the size of the backing array to accommodate the specified number of additional items.
    protected int
    ensureGap(int index, int gapSize)
    Make sure there is a "gap" of exactly gapSize values starting at index.
    boolean
    equals(Object object)
    Compares this with any other CharSequence for equality of length, contents, and order.
    boolean
    Checks if this is equal to another CharSequence, but runs all chars in both the given text and this through Casing.caseUp(char) before comparing (making the comparison case-insensitive for almost all scripts in use today, except some situations for Georgian).
    char
    Returns the first (head) item in the deque (without removing it).
    char
    get(int index)
    Returns the element at the specified position in this deque.
    char
    Gets the default value, which is the value returned when nothing can be obtained from this deque and an exception is not meant to be thrown, such as when calling peek() on an empty deque.
    char
    Retrieves, but does not remove, the first element of this deque.
    char
    Retrieves, but does not remove, the last element of this deque.
    char
    getRandom(Random random)
    Gets a randomly selected item from this CharDeque, using the given random number generator.
    int
     
    int
    indexOf(char search)
    Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
    int
    indexOf(char search, int fromIndex)
    Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
    int
    Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
    int
    indexOf(CharSequence search, int fromIndex)
    Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
    int
    indexOfIgnoreCase(char search)
    Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
    int
    indexOfIgnoreCase(char search, int fromIndex)
    Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
    int
    Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
    int
    indexOfIgnoreCase(CharSequence search, int fromIndex)
    Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
    void
    insert(int index, char item)
    Inserts the specified element into this deque at the specified index.
    boolean
    insertAll(int index, char[] array)
    boolean
    insertAll(int index, char[] array, int offset, int length)
    boolean
    insertAll(int index, Ordered.OfChar ord)
    boolean
    insertAll(int index, Ordered.OfChar ord, int offset, int length)
    boolean
    An alias for addAll(int, OfChar); inserts all elements in the specified collection into this list at the specified position.
    boolean
    Returns true if the deque is empty.
    Returns an iterator for the items in the deque.
    char
    Returns the last (tail) item in the deque (without removing it).
    int
    lastIndexOf(char search)
    Returns the index of the last occurrence of value in the deque, or -1 if no such value exists.
    int
    lastIndexOf(char search, int fromIndex)
    Returns the index of last occurrence of search in the deque, starting from fromIndex and going backwards, or -1 if no such value exists.
    int
    Returns the index of the last occurrence of value in the deque, or -1 if no such value exists.
    int
    lastIndexOf(CharSequence search, int fromIndex)
    Returns the index of the last occurrence of value in the deque, or -1 if no such value exists.
    int
    lastIndexOfIgnoreCase(char search)
    Returns the index of the last occurrence of value in the deque, or -1 if no such value exists.
    int
    lastIndexOfIgnoreCase(char search, int fromIndex)
    Returns the index of last occurrence of search in the deque, starting from fromIndex and going backwards, or -1 if no such value exists.
    int
    Returns the index of the last occurrence of value in the deque, or -1 if no such value exists.
    int
    lastIndexOfIgnoreCase(CharSequence search, int fromIndex)
    Returns the index of the last occurrence of value in the deque, or -1 if no such value exists.
    leftString(int length)
    Creates a new String by copying the given subrange of this CharDeque, from index 0 (inclusive) to length (exclusive).
    Appends a literal newline (Unicode character u000A).
     
    listIterator(int index)
    Gets an iterator over this deque that starts at the given index.
    boolean
    Returns true if the deque has one or more items.
    boolean
    offer(char t)
    Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning true upon success and false if no space is currently available.
    boolean
    offerFirst(char t)
    Inserts the specified element at the front of this deque unless it would violate capacity restrictions.
    boolean
    offerLast(char t)
    Inserts the specified element at the end of this deque unless it would violate capacity restrictions.
    Returns this CharList, since it is its own order.
    padLeft(int count, char padWith)
    Adds count repetitions of padWith to the start (left) of this list.
    padRight(int count, char padWith)
    Adds count repetitions of padWith to the end (right) of this list.
    static CharDeque
    parse(String str, String delimiter)
    Calls parse(String, String, boolean) with brackets set to false.
    static CharDeque
    parse(String str, String delimiter, boolean brackets)
    Creates a new collection and fills it by calling PrimitiveCollection.OfChar.addLegible(String, String, int, int) on either all of str (if brackets is false) or str without its first and last chars (if brackets is true).
    static CharDeque
    parse(String str, String delimiter, int offset, int length)
    Creates a new collection and fills it by calling PrimitiveCollection.OfChar.addLegible(String, String, int, int) with the given four parameters as-is.
    char
    Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque), or returns defaultValue if this deque is empty.
    char
    peekAt(int index)
    Returns the element at the specified position in this deque.
    char
    Retrieves, but does not remove, the first element of this deque, or returns defaultValue if this deque is empty.
    char
    Retrieves, but does not remove, the last element of this deque, or returns defaultValue if this deque is empty.
    char
    Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), or returns defaultValue if this deque is empty.
    char
    poll(int index)
    Removes the element at the specified position in this deque.
    char
    pollAt(int index)
    Removes the element at the specified position in this deque.
    char
    Retrieves and removes the first element of this deque, or returns defaultValue if this deque is empty.
    char
    Retrieves and removes the last element of this deque, or returns defaultValue if this deque is empty.
    char
    pop()
    Pops an element from the stack represented by this deque.
    void
    push(char t)
    Pushes an element onto the stack represented by this deque (in other words, at the head of this deque).
    char
    random(Random random)
    Gets a randomly selected item from this CharDeque, using the given random number generator.
    char
    Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque).
    boolean
    remove(char o)
    Removes the first occurrence of the specified element from this deque.
    boolean
    Removes from this CharList all occurrences of any elements contained in the specified collection.
    char
    removeAt(int index)
    Removes the element at the specified position in this deque.
    boolean
    Removes from this CharList element-wise occurrences of elements contained in the specified collection.
    char
    Remove the first item from the deque.
    boolean
    Removes the first occurrence of the specified element from this deque.
    char
    Remove the last item from the deque.
    boolean
    Removes the last occurrence of the specified element from this deque.
    boolean
    removeLastValue(char value)
    Removes the last instance of the specified value in the deque.
    void
    removeRange(int fromIndex, int toIndex)
    Removes from this list all the elements whose index is between fromIndex, inclusive, and toIndex, exclusive.
    boolean
    removeValue(char value)
    Removes the first instance of the specified value in the deque.
    void
    replaceAll(com.github.tommyettinger.function.CharToCharFunction operator)
    Replaces each element of this list with the result of applying the given operator to that element.
    char[]
    resize(int newSize)
    Resizes the backing array.
    boolean
    Removes all items from this CharList that are not present somewhere in other, any number of times.
    void
    Reverses this CharDeque in-place.
    rightString(int length)
    Creates a new String by copying the given subrange of this CharDeque, from index size() - length (inclusive) to size() (exclusive).
    void
    set(int index, char item)
    Replaces the element at the specified position in this list with the specified element.
    void
    setDefaultValue(char defaultValue)
    Sets the default value, which is the value returned when nothing can be obtained from this deque and an exception is not meant to be thrown, such as when calling peek() on an empty deque.
    char[]
    setSize(int newSize)
    Sets the list size, leaving any values beyond the current size undefined.
    char[]
    Reduces the size of the backing array to the size of the actual items.
    void
    Pseudo-randomly shuffles the order of this Ordered in-place.
    int
    Returns the number of elements in this deque.
    void
    Sorts this deque in-place using Arrays.sort(char[], int, int) in ascending order.
    void
    sort(int from, int to)
    Uses Arrays.sort(char[], int, int) to sort a (clamped) subrange of this deque.
    void
    sort(int from, int to, CharComparator comparator)
    Sorts the specified range of elements according to the order induced by the specified comparator using mergesort, or Arrays.sort(char[], int, int) if c is null.
    void
    sort(CharComparator comparator)
    subSequence(int start, int end)
    Gets a new CharDeque from the given subrange, clamping start and end so that this will not throw any Exception.
    substring(int start, int end)
    Creates a new String by copying the given subrange of this CharDeque.
    void
    swap(int first, int second)
    Switches the ordering of positions first and second, without changing any items beyond that.
    char[]
    Returns an array containing all the elements in this collection.
    char[]
    toArray(char[] array)
    If array.length at least equal to CharList.size(), this copies the contents of this into array and returns it; otherwise, it allocates a new char array that can fit all the items in this, and proceeds to copy into that and return that.
    Simply returns all the char items in this as one String, with no delimiters.
    Delegates to PrimitiveCollection.OfChar.toString(String, boolean) with a delimiter of ", " and square brackets enabled.
    void
    Trims the capacity of this CharDeque instance to be the deque's current size.
    void
    truncate(int newSize)
    Reduces the size of the deque to the specified size by bulk-removing items from the tail end.
    void
    truncateFirst(int newSize)
    Reduces the size of the deque to the specified size by bulk-removing from the head.
    void
    truncateLast(int newSize)
    Alias for truncate(int).
    static CharDeque
    Constructs an empty deque.
    static CharDeque
    with(char item)
    Creates a new CharDeque that holds only the given item, but can be resized.
    static CharDeque
    with(char... varargs)
    Creates a new CharDeque that will hold the items in the given array or varargs.
    static CharDeque
    with(char item0, char item1)
    Creates a new CharDeque that holds only the given items, but can be resized.
    static CharDeque
    with(char item0, char item1, char item2)
    Creates a new CharDeque that holds only the given items, but can be resized.
    static CharDeque
    with(char item0, char item1, char item2, char item3)
    Creates a new CharDeque that holds only the given items, but can be resized.
    static CharDeque
    with(char item0, char item1, char item2, char item3, char item4)
    Creates a new CharDeque that holds only the given items, but can be resized.
    static CharDeque
    with(char item0, char item1, char item2, char item3, char item4, char item5)
    Creates a new CharDeque that holds only the given items, but can be resized.
    static CharDeque
    with(char item0, char item1, char item2, char item3, char item4, char item5, char item6)
    Creates a new CharDeque that holds only the given items, but can be resized.
    static CharDeque
    with(char item0, char item1, char item2, char item3, char item4, char item5, char item6, char item7)
    Creates a new CharDeque that holds only the given items, but can be resized.

    Methods inherited from class com.github.tommyettinger.ds.CharList

    charAt, compareTo, compareWith, compareWithIgnoreCase, contains, containsIgnoreCase, keepsOrder, length

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface com.github.tommyettinger.ds.Arrangeable

    rearrange, shuffle

    Methods inherited from interface java.lang.CharSequence

    chars, codePoints

    Methods inherited from interface com.github.tommyettinger.ds.Ordered.OfChar

    charAt, getOrderType, length, random, selectRanked, selectRankedIndex
  • Field Details

    • defaultValue

      public char defaultValue
      The value returned when nothing can be obtained from this deque and an exception is not meant to be thrown, such as when calling peek() on an empty deque.
    • tail

      protected int tail
      Index of last element. Logically bigger than head. Unless empty, it points to a valid element inside the deque. This may be the same as head, and is if there is one element in the deque (or none), that will be the case.
    • descendingIterator1

      protected transient CharDeque.CharDequeIterator descendingIterator1
    • descendingIterator2

      protected transient CharDeque.CharDequeIterator descendingIterator2
  • Constructor Details

    • CharDeque

      public CharDeque()
      Creates a new CharDeque which can hold 16 values without needing to resize the backing array.
    • CharDeque

      public CharDeque(int initialSize)
      Creates a new CharDeque which can hold the specified number of values without needing to resize the backing array.
      Parameters:
      initialSize - how large the backing array should be, without any padding
    • CharDeque

      public CharDeque(PrimitiveCollection.OfChar coll)
      Creates a new CharDeque using all the contents of the given Collection.
      Parameters:
      coll - a Collection of char that will be copied into this and used in full
      Throws:
      NullPointerException - if coll is null
    • CharDeque

      public CharDeque(CharIterator iter)
      Creates a new instance containing the items in the specified iterator.
      Parameters:
      iter - an iterator that will have its remaining contents added to this
      Throws:
      NullPointerException - if iter is null
    • CharDeque

      public CharDeque(CharDeque deque)
      Copies the given CharDeque exactly into this one. Individual values will be shallow-copied.
      Parameters:
      deque - another CharDeque to copy
      Throws:
      NullPointerException - if deque is null
    • CharDeque

      public CharDeque(Ordered.OfChar other, int offset, int count)
    • CharDeque

      public CharDeque(char[] a)
      Creates a new CharDeque using all the contents of the given array.
      Parameters:
      a - an array of char that will be copied into this and used in full
      Throws:
      NullPointerException - if a is null
    • CharDeque

      public CharDeque(char[] a, int offset, int count)
      Creates a new CharDeque using count items from a, starting at offset. If count is 0 or less, this will create an empty CharDeque with capacity 1.
      Parameters:
      a - an array of char
      offset - where in a to start using items
      count - how many items to use from a
      Throws:
      NullPointerException - if a is null
    • CharDeque

      public CharDeque(Ordered.OfChar other)
    • CharDeque

      public CharDeque(CharSequence other)
    • CharDeque

      public CharDeque(CharSequence other, int start, int end)
      Creates a new CharDeque from part of another CharSequence; start is inclusive and end is exclusive.
      Parameters:
      other - a CharSequence to use part of, such as a String or a CharList
      start - first index in other to use, inclusive
      end - last index in other to use, exclusive
  • Method Details

    • order

      public CharDeque order()
      Description copied from class: CharList
      Returns this CharList, since it is its own order. This is only here to satisfy the Ordered.OfChar interface.
      Specified by:
      order in interface Ordered.OfChar
      Overrides:
      order in class CharList
      Returns:
      this CharList
    • getDefaultValue

      public char getDefaultValue()
      Gets the default value, which is the value returned when nothing can be obtained from this deque and an exception is not meant to be thrown, such as when calling peek() on an empty deque. Unless changed, the default value is usually null.
      Returns:
      the current default value
    • setDefaultValue

      public void setDefaultValue(char defaultValue)
      Sets the default value, which is the value returned when nothing can be obtained from this deque and an exception is not meant to be thrown, such as when calling peek() on an empty deque. Unless changed, the default value is usually null.
      Parameters:
      defaultValue - any char this can return instead of throwing an Exception, or null
    • addLast

      public void addLast(char value)
      Appends given char to the tail (enqueue to tail). Unless the backing array needs resizing, operates in O(1) time.
      Parameters:
      value - can be null
    • addLast

      public void addLast(char value1, char value2)
    • addLast

      public void addLast(char value1, char value2, char value3)
    • addLast

      public void addLast(char value1, char value2, char value3, char value4)
    • addFirst

      public void addFirst(char value)
      Prepend given value to the head (enqueue to head). Unless backing array needs resizing, operates in O(1) time.
      Parameters:
      value - can be null
      See Also:
    • addFirst

      public void addFirst(char value1, char value2)
    • addFirst

      public void addFirst(char value1, char value2, char value3)
    • addFirst

      public void addFirst(char value1, char value2, char value3, char value4)
    • trimToSize

      public void trimToSize()
      Trims the capacity of this CharDeque instance to be the deque's current size. An application can use this operation to minimize the storage of a CharDeque instance.
      Overrides:
      trimToSize in class CharList
    • shrink

      public char[] shrink()
      Description copied from class: CharList
      Reduces the size of the backing array to the size of the actual items. This is useful to release memory when many items have been removed, or if it is known that more items will not be added.
      Overrides:
      shrink in class CharList
      Returns:
      CharList.items; this will be a different reference if this resized
    • ensureCapacity

      public char[] ensureCapacity(int additional)
      Increases the size of the backing array to accommodate the specified number of additional items. Useful before adding many items to avoid multiple backing array resizes.
      Overrides:
      ensureCapacity in class CharList
      Returns:
      the backing array this will use after this call
    • resize

      public char[] resize(int newSize)
      Resizes the backing array. newSize should be greater than the current size; otherwise, newSize will be set to size and the resize to the same size will (for most purposes) be wasted effort. If this is not empty, this will rearrange the items internally to be linear and have the head at index 0, with the tail at size - 1. This always allocates a new internal backing array.
      Overrides:
      resize in class CharList
      Returns:
      the new backing array, as a direct reference
    • ensureGap

      protected int ensureGap(int index, int gapSize)
      Make sure there is a "gap" of exactly gapSize values starting at index. This can resize the backing array to achieve this goal. If possible, this will keep the same backing array and modify it in-place. The "gap" is not assigned null, and may contain old/duplicate references; calling code must overwrite the entire gap with additional values to ensure GC correctness.
      Parameters:
      index - the 0-based index in the iteration order where the gap will be present
      gapSize - the number of items that will need filling in the gap, and can be filled without issues.
      Returns:
      the position in the array where the gap will begin, which is unrelated to the index
    • addAll

      public boolean addAll(CharList list)
      Overrides:
      addAll in class CharList
    • addAll

      public boolean addAll(CharList list, int offset, int count)
      Overrides:
      addAll in class CharList
    • removeFirst

      public char removeFirst()
      Remove the first item from the deque. (dequeue from head) Always O(1).
      Returns:
      removed char
      Throws:
      NoSuchElementException - when the deque is empty
    • removeLast

      public char removeLast()
      Remove the last item from the deque. (dequeue from tail) Always O(1).
      Returns:
      removed char
      Throws:
      NoSuchElementException - when the deque is empty
      See Also:
    • offerFirst

      public boolean offerFirst(char t)
      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 addFirst(char) method, which can fail to insert an element only by throwing an exception.
      Parameters:
      t - the element to add
      Returns:
      true if the element was added to this deque, else false
      Throws:
      ClassCastException - if the class of the specified element prevents it from being added to this deque
      NullPointerException - if the specified element is null and this deque does not permit null elements
      IllegalArgumentException - if some property of the specified element prevents it from being added to this deque
    • offerLast

      public boolean offerLast(char t)
      Inserts the specified element at the end of this deque unless it would violate capacity restrictions. When using a capacity-restricted deque, this method is generally preferable to the addLast(char) method, which can fail to insert an element only by throwing an exception.
      Parameters:
      t - the element to add
      Returns:
      true if the element was added to this deque, else false
      Throws:
      ClassCastException - if the class of the specified element prevents it from being added to this deque
      NullPointerException - if the specified element is null and this deque does not permit null elements
      IllegalArgumentException - if some property of the specified element prevents it from being added to this deque
    • pollFirst

      public char pollFirst()
      Retrieves and removes the first element of this deque, or returns defaultValue if this deque is empty. The default value is usually null unless it has been changed with setDefaultValue(char).
      Returns:
      the head of this deque, or defaultValue if this deque is empty
      See Also:
    • pollLast

      public char pollLast()
      Retrieves and removes the last element of this deque, or returns defaultValue if this deque is empty. The default value is usually null unless it has been changed with setDefaultValue(char).
      Returns:
      the tail of this deque, or defaultValue if this deque is empty
      See Also:
    • getFirst

      public char getFirst()
      Retrieves, but does not remove, the first element of this deque.

      This method differs from peekFirst only in that it throws an exception if this deque is empty.

      Returns:
      the head of this deque
      Throws:
      NoSuchElementException - if this deque is empty
    • getLast

      public char getLast()
      Retrieves, but does not remove, the last element of this deque. This method differs from peekLast only in that it throws an exception if this deque is empty.
      Returns:
      the tail of this deque
      Throws:
      NoSuchElementException - if this deque is empty
    • peekFirst

      public char peekFirst()
      Retrieves, but does not remove, the first element of this deque, or returns defaultValue if this deque is empty.
      Returns:
      the head of this deque, or defaultValue if this deque is empty
    • peekLast

      public char peekLast()
      Retrieves, but does not remove, the last element of this deque, or returns defaultValue if this deque is empty.
      Returns:
      the tail of this deque, or defaultValue if this deque is empty
    • removeFirstOccurrence

      public boolean removeFirstOccurrence(char o)
      Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element e such that o == e (if such an element exists). Returns true if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
      Parameters:
      o - element to be removed from this deque, if present
      Returns:
      true if an element was removed as a result of this call
    • removeLastOccurrence

      public boolean removeLastOccurrence(char o)
      Removes the last occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the last element e such that o == e (if such an element exists). Returns true if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
      Parameters:
      o - element to be removed from this deque, if present
      Returns:
      true if an element was removed as a result of this call
    • add

      public boolean add(char t)
      Inserts the specified element into the deque represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning true upon success and throwing an IllegalStateException if no space is currently available. When using a capacity-restricted deque, it is generally preferable to use offer.

      This method is equivalent to addLast(char).

      Specified by:
      add in interface PrimitiveCollection.OfChar
      Overrides:
      add in class CharList
      Parameters:
      t - the element to add
      Returns:
      true (as specified by Collection.add(E))
    • add

      public void add(char value1, char value2)
      Overrides:
      add in class CharList
    • add

      public void add(char value1, char value2, char value3)
      Overrides:
      add in class CharList
    • add

      public void add(char value1, char value2, char value3, char value4)
      Overrides:
      add in class CharList
    • insert

      public void insert(int index, char item)
      Inserts the specified element into this deque at the specified index. Unlike offerFirst(char) and offerLast(char), this does not run in expected constant time unless the index is less than or equal to 0 (where it acts like offerFirst()) or greater than or equal to size() (where it acts like offerLast()).
      Overrides:
      insert in class CharList
      Parameters:
      index - the index in the deque's insertion order to insert the item
      item - a char item to insert; may be null
    • offer

      public boolean offer(char t)
      Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning true upon success and false if no space is currently available. When using a capacity-restricted deque, this method is generally preferable to the add(char) method, which can fail to insert an element only by throwing an exception.

      This method is equivalent to offerLast(char).

      Parameters:
      t - the element to add
      Returns:
      true if the element was added to this deque, else false
    • remove

      public char remove()
      Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from poll() only in that it throws an exception if this deque is empty.

      This method is equivalent to removeFirst().

      Returns:
      the head of the queue represented by this deque
      Throws:
      NoSuchElementException - if this deque is empty
    • poll

      public char poll()
      Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), or returns defaultValue if this deque is empty.

      This method is equivalent to pollFirst().

      Returns:
      the first element of this deque, or defaultValue if this deque is empty
    • element

      public char element()
      Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from peek only in that it throws an exception if this deque is empty.

      This method is equivalent to getFirst().

      Returns:
      the head of the queue represented by this deque
      Throws:
      NoSuchElementException - if this deque is empty
    • peek

      public char peek()
      Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque), or returns defaultValue if this deque is empty.

      This method is equivalent to peekFirst().

      Overrides:
      peek in class CharList
      Returns:
      the head of the queue represented by this deque, or defaultValue if this deque is empty
    • addAll

      public boolean addAll(PrimitiveCollection.OfChar c)
      Adds all the elements in the specified collection at the end of this deque, as if by calling addLast(char) on each one, in the order that they are returned by the collection's iterator.

      When using a capacity-restricted deque, it is generally preferable to call offer separately on each element.

      An exception encountered while trying to add an element may result in only some of the elements having been successfully added when the associated exception is thrown.

      Specified by:
      addAll in interface PrimitiveCollection.OfChar
      Parameters:
      c - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
    • addAllLast

      public boolean addAllLast(PrimitiveCollection.OfChar c)
      An alias for addAll(OfChar), this adds every item in c to this in order at the end.
      Parameters:
      c - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
    • addAllFirst

      public boolean addAllFirst(PrimitiveCollection.OfChar c)
      Adds every item in c to this in order at the start. The iteration order of c will be preserved for the added items.
      Parameters:
      c - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
    • insertAll

      public boolean insertAll(int index, PrimitiveCollection.OfChar c)
      An alias for addAll(int, OfChar); inserts all elements in the specified collection into this list at the specified position. Shifts the element currently at that position (if any) and any subsequent elements to the right (increases their indices). The new elements will appear in this list in the order that they are returned by the specified collection's iterator. The behavior of this operation is undefined if the specified collection is modified while the operation is in progress. (Note that this will occur if the specified collection is this list, and it's nonempty.)
      Parameters:
      index - index at which to insert the first element from the specified collection
      c - collection containing elements to be added to this list
      Returns:
      true if this list changed as a result of the call
    • addAll

      public boolean addAll(int index, PrimitiveCollection.OfChar c)
    • addAll

      public boolean addAll(char[] array)
      Exactly like addAll(OfChar), but takes an array instead of a PrimitiveCollection.OfChar.
      Specified by:
      addAll in interface PrimitiveCollection.OfChar
      Overrides:
      addAll in class CharList
      Parameters:
      array - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAll

      public boolean addAll(char[] array, int offset, int length)
      Like addAll(char[]), but only uses at most length items from array, starting at offset.
      Specified by:
      addAll in interface PrimitiveCollection.OfChar
      Overrides:
      addAll in class CharList
      Parameters:
      array - the elements to be inserted into this deque
      offset - the index of the first item in array to add
      length - how many items, at most, to add from array into this
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAllLast

      public boolean addAllLast(char[] array)
      An alias for addAll(char[]).
      Parameters:
      array - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAllLast

      public boolean addAllLast(char[] array, int offset, int length)
      Parameters:
      array - the elements to be inserted into this deque
      offset - the index of the first item in array to add
      length - how many items, at most, to add from array into this
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAllFirst

      public boolean addAllFirst(char[] array)
      Exactly like addAllFirst(OfChar), but takes an array instead of a PrimitiveCollection.OfChar.
      Parameters:
      array - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAllFirst

      public boolean addAllFirst(char[] array, int offset, int length)
      Like addAllFirst(char[]), but only uses at most length items from array, starting at offset. The order of array will be preserved, starting at the head of the deque.
      Parameters:
      array - the elements to be inserted into this deque
      offset - the index of the first item in array to add
      length - how many items, at most, to add from array into this
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • insertAll

      public boolean insertAll(int index, char[] array)
      Parameters:
      index - the index in this deque's iteration order to place the first item in array
      array - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
    • insertAll

      public boolean insertAll(int index, char[] array, int offset, int length)
      Parameters:
      index - the index in this deque's iteration order to place the first item in array
      array - the elements to be inserted into this deque
      offset - the index of the first item in array to add
      length - how many items, at most, to add from array into this
      Returns:
      true if this deque changed as a result of the call
    • addAll

      public boolean addAll(int index, char[] array)
      Like addAll(int, OfChar), but takes an array instead of a PrimitiveCollection.OfChar and inserts it so the first item will be at the given index. The order of array will be preserved, starting at the given index in this deque.
      Parameters:
      index - the index in this deque's iteration order to place the first item in array
      array - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAll

      public boolean addAll(int index, char[] array, int offset, int length)
      Like addAll(int, OfChar), but takes an array instead of a PrimitiveCollection.OfChar, gets items starting at offset from that array, using length items, and inserts them so the item at the given offset will be at the given index. The order of array will be preserved, starting at the given index in this deque.
      Parameters:
      index - the index in this deque's iteration order to place the first item in array
      array - the elements to be inserted into this deque
      offset - the index of the first item in array to add
      length - how many items, at most, to add from array into this
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAll

      public boolean addAll(Ordered.OfChar ord)
      Exactly like addAll(OfChar), but takes an Ordered.OfChar instead of a PrimitiveCollection.OfChar.
      Parameters:
      ord - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAll

      public boolean addAll(Ordered.OfChar ord, int offset, int length)
      Like addAll(char[]), but only uses at most length items from ord, starting at offset.
      Overrides:
      addAll in class CharList
      Parameters:
      ord - the elements to be inserted into this deque
      offset - the index of the first item in ord to add
      length - how many items, at most, to add from ord into this
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAll

      public boolean addAll(int index, Ordered.OfChar ord)
      Like addAll(int, OfChar), but takes an ord instead of a PrimitiveCollection.OfChar and inserts it so the first item will be at the given index. The order of ord will be preserved, starting at the given index in this deque.
      Parameters:
      index - the index in this deque's iteration order to place the first item in ord
      ord - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAll

      public boolean addAll(int index, Ordered.OfChar ord, int offset, int length)
      Like addAll(int, OfChar), but takes an array instead of a PrimitiveCollection.OfChar, gets items starting at offset from that array, using length items, and inserts them so the item at the given offset will be at the given index. The order of array will be preserved, starting at the given index in this deque.
      Overrides:
      addAll in class CharList
      Parameters:
      index - the index in this deque's iteration order to place the first item in array
      ord - the elements to be inserted into this deque
      offset - the index of the first item in array to add
      length - how many items, at most, to add from array into this
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAllLast

      public boolean addAllLast(Ordered.OfChar ord)
      Parameters:
      ord - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAllLast

      public boolean addAllLast(Ordered.OfChar ord, int offset, int length)
      Parameters:
      ord - the elements to be inserted into this deque
      offset - the index of the first item in ord to add
      length - how many items, at most, to add from ord into this
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAllFirst

      public boolean addAllFirst(Ordered.OfChar ord)
      Exactly like addAllFirst(OfChar), but takes an ord instead of a PrimitiveCollection.OfChar.
      Parameters:
      ord - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • addAllFirst

      public boolean addAllFirst(Ordered.OfChar ord, int offset, int length)
      Like addAllFirst(Ordered.OfChar), but only uses at most length items from ord, starting at offset. The order of ord will be preserved, starting at the head of the deque.
      Parameters:
      ord - the elements to be inserted into this deque
      offset - the index of the first item in ord to add
      length - how many items, at most, to add from ord into this
      Returns:
      true if this deque changed as a result of the call
      See Also:
    • insertAll

      public boolean insertAll(int index, Ordered.OfChar ord)
      Parameters:
      index - the index in this deque's iteration order to place the first item in ord
      ord - the elements to be inserted into this deque
      Returns:
      true if this deque changed as a result of the call
    • insertAll

      public boolean insertAll(int index, Ordered.OfChar ord, int offset, int length)
      Parameters:
      index - the index in this deque's iteration order to place the first item in ord
      ord - the elements to be inserted into this deque
      offset - the index of the first item in ord to add
      length - how many items, at most, to add from ord into this
      Returns:
      true if this deque changed as a result of the call
    • push

      public void push(char t)
      Pushes an element onto the stack represented by this deque (in other words, at the head of this deque).

      This method is equivalent to addFirst(char).

      Parameters:
      t - the element to push
    • pop

      public char pop()
      Pops an element from the stack represented by this deque. In other words, removes and returns the first element of this deque.

      This method is equivalent to removeFirst().

      Overrides:
      pop in class CharList
      Returns:
      the element at the front of this deque (which is the top of the stack represented by this deque)
      Throws:
      NoSuchElementException - if this deque is empty
    • remove

      public boolean remove(char o)
      Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element e such that o == e (if such an element exists). Returns true if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).

      This method is equivalent to removeFirstOccurrence(char).

      Specified by:
      remove in interface PrimitiveCollection.OfChar
      Overrides:
      remove in class CharList
      Parameters:
      o - element to be removed from this deque, if present
      Returns:
      true if an element was removed as a result of this call
    • contains

      public boolean contains(char o)
      Returns true if this deque contains the specified element. More formally, returns true if and only if this deque contains at least one element e such that o == e.
      Specified by:
      contains in interface PrimitiveCollection.OfChar
      Overrides:
      contains in class CharList
      Parameters:
      o - element whose presence in this deque is to be tested
      Returns:
      true if this deque contains the specified element
    • containsAll

      public boolean containsAll(CharList other)
      Description copied from class: CharList
      Returns true if this CharList contains, at least once, every item in other; otherwise returns false.
      Overrides:
      containsAll in class CharList
      Parameters:
      other - an CharList
      Returns:
      true if this contains every item in other, otherwise false
    • size

      public int size()
      Returns the number of elements in this deque.
      Specified by:
      size in interface Arrangeable
      Specified by:
      size in interface PrimitiveCollection<Character>
      Overrides:
      size in class CharList
      Returns:
      the number of elements in this deque
    • toArray

      public char[] toArray()
      Returns an array containing all the elements in this collection. If this collection makes any guarantees as to what order its elements are returned by its iterator, this method must return the elements in the same order. The returned array's runtime component type is char.

      The returned array will be "safe" in that no references to it are maintained by this collection. (In other words, this method must allocate a new array even if this collection is backed by an array). The caller is thus free to modify the returned array.

      Specified by:
      toArray in interface PrimitiveCollection.OfChar
      Overrides:
      toArray in class CharList
      Returns:
      an array, whose runtime component type is char, containing all the elements in this collection
    • toArray

      public char[] toArray(char[] array)
      Description copied from class: CharList
      If array.length at least equal to CharList.size(), this copies the contents of this into array and returns it; otherwise, it allocates a new char array that can fit all the items in this, and proceeds to copy into that and return that.
      Specified by:
      toArray in interface PrimitiveCollection.OfChar
      Overrides:
      toArray in class CharList
      Parameters:
      array - a char array that will be modified if it can fit CharList.size() items
      Returns:
      array, if it had sufficient size, or a new array otherwise, either with a copy of this
    • setSize

      public char[] setSize(int newSize)
      Description copied from class: CharList
      Sets the list size, leaving any values beyond the current size undefined.
      Overrides:
      setSize in class CharList
      Returns:
      CharList.items; this will be a different reference if this resized to a larger capacity
    • truncateLast

      public void truncateLast(int newSize)
      Alias for truncate(int).
      Parameters:
      newSize - the size this deque should have after this call completes, if smaller than the current size
    • truncate

      public void truncate(int newSize)
      Reduces the size of the deque to the specified size by bulk-removing items from the tail end. If the deque is already smaller than the specified size, no action is taken.
      Overrides:
      truncate in class CharList
      Parameters:
      newSize - the size this deque should have after this call completes, if smaller than the current size
    • truncateFirst

      public void truncateFirst(int newSize)
      Reduces the size of the deque to the specified size by bulk-removing from the head. If the deque is already smaller than the specified size, no action is taken.
      Parameters:
      newSize - the size this deque should have after this call completes, if smaller than the current size
    • removeRange

      public void removeRange(int fromIndex, int toIndex)
      Removes from this list all the elements whose index is between fromIndex, inclusive, and toIndex, exclusive. Shifts any succeeding elements to the left (reduces their index). This call shrinks the list by (toIndex - fromIndex) elements. If toIndex==fromIndex, this operation has no effect. If fromIndex is 0 or less, this delegates to truncateFirst(int); if toIndex is equal to or greater than the size of this collection, this delegates to truncate(int).
      This is public here, not protected as in most JDK collections, because there are actually sometimes needs for this in user code.
      Specified by:
      removeRange in interface Ordered.OfChar
      Overrides:
      removeRange in class CharList
      Parameters:
      fromIndex - index of first element to be removed (inclusive)
      toIndex - index after last element to be removed (exclusive)
    • indexOf

      public int indexOf(char search)
      Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
      Overrides:
      indexOf in class CharList
      Parameters:
      search - the char to look for
      Returns:
      An index of the first occurrence of value in the deque or -1 if no such value exists
    • indexOf

      public int indexOf(char search, int fromIndex)
      Returns the index of the first occurrence of value in the deque, or -1 if no such value exists. This returns fromIndex if value is present at that point, so if you chain calls to indexOf(), the subsequent fromIndex should be larger than the last-returned index.
      Overrides:
      indexOf in class CharList
      Parameters:
      search - the char to look for
      fromIndex - the initial index to check (zero-indexed, starts at the head, inclusive)
      Returns:
      An index of first occurrence of value at or after fromIndex in the deque, or -1 if no such value exists
    • indexOfIgnoreCase

      public int indexOfIgnoreCase(char search)
      Returns the index of the first occurrence of value in the deque, or -1 if no such value exists. This compares the given CharSequence as if both it and this CharSequence have had every character converted to upper case by Casing.caseUp(char).
      Overrides:
      indexOfIgnoreCase in class CharList
      Parameters:
      search - the char to look for
      Returns:
      An index of the first occurrence of value in the deque or -1 if no such value exists
    • indexOfIgnoreCase

      public int indexOfIgnoreCase(char search, int fromIndex)
      Returns the index of the first occurrence of value in the deque, or -1 if no such value exists. This returns fromIndex if value is present at that point, so if you chain calls to indexOf(), the subsequent fromIndex should be larger than the last-returned index. This compares the given CharSequence as if both it and this CharSequence have had every character converted to upper case by Casing.caseUp(char).
      Overrides:
      indexOfIgnoreCase in class CharList
      Parameters:
      search - the char to look for
      fromIndex - the initial index to check (zero-indexed, starts at the head, inclusive)
      Returns:
      An index of first occurrence of value at or after fromIndex in the deque, or -1 if no such value exists
    • indexOf

      public int indexOf(CharSequence search)
      Returns the index of the first occurrence of value in the deque, or -1 if no such value exists.
      Overrides:
      indexOf in class CharList
      Parameters:
      search - the CharSequence to look for
      Returns:
      An index of the first occurrence of value in the deque or -1 if no such value exists
    • indexOf

      public int indexOf(CharSequence search, int fromIndex)
      Returns the index of the first occurrence of value in the deque, or -1 if no such value exists. This returns fromIndex if value is present at that point, so if you chain calls to indexOf(), the subsequent fromIndex should be larger than the last-returned index.
      Overrides:
      indexOf in class CharList
      Parameters:
      search - the CharSequence to look for
      fromIndex - the initial index to check (zero-indexed, starts at the head, inclusive)
      Returns:
      An index of first occurrence of value at or after fromIndex in the deque, or -1 if no such value exists
    • indexOfIgnoreCase

      public int indexOfIgnoreCase(CharSequence search)
      Returns the index of the first occurrence of value in the deque, or -1 if no such value exists. This compares the given CharSequence as if both it and this CharSequence have had every character converted to upper case by Casing.caseUp(char).
      Overrides:
      indexOfIgnoreCase in class CharList
      Parameters:
      search - the CharSequence to look for
      Returns:
      An index of the first occurrence of value in the deque or -1 if no such value exists
    • indexOfIgnoreCase

      public int indexOfIgnoreCase(CharSequence search, int fromIndex)
      Returns the index of the first occurrence of value in the deque, or -1 if no such value exists. This returns fromIndex if value is present at that point, so if you chain calls to indexOf(), the subsequent fromIndex should be larger than the last-returned index. This compares the given CharSequence as if both it and this CharSequence have had every character converted to upper case by Casing.caseUp(char).
      Overrides:
      indexOfIgnoreCase in class CharList
      Parameters:
      search - the CharSequence to look for
      fromIndex - the initial index to check (zero-indexed, starts at the head, inclusive)
      Returns:
      An index of first occurrence of value at or after fromIndex in the deque, or -1 if no such value exists
    • lastIndexOf

      public int lastIndexOf(char search)
      Returns the index of the last occurrence of value in the deque, or -1 if no such value exists.
      Overrides:
      lastIndexOf in class CharList
      Parameters:
      search - the char to look for
      Returns:
      An index of the last occurrence of value in the deque or -1 if no such value exists
    • lastIndexOf

      public int lastIndexOf(char search, int fromIndex)
      Returns the index of last occurrence of search in the deque, starting from fromIndex and going backwards, or -1 if no such value exists. This returns fromIndex if search is present at that point, so if you chain calls to indexOf(), the subsequent fromIndex should be smaller than the last-returned index.
      Overrides:
      lastIndexOf in class CharList
      Parameters:
      search - the char to look for
      fromIndex - the initial index to check (zero-indexed, starts at the head, inclusive)
      Returns:
      An index of last occurrence of value at or before fromIndex in the deque, or -1 if no such value exists
    • lastIndexOf

      public int lastIndexOf(CharSequence search)
      Returns the index of the last occurrence of value in the deque, or -1 if no such value exists.
      Overrides:
      lastIndexOf in class CharList
      Parameters:
      search - the CharSequence to look for
      Returns:
      An index of the last occurrence of value in the deque or -1 if no such value exists
    • lastIndexOf

      public int lastIndexOf(CharSequence search, int fromIndex)
      Returns the index of the last occurrence of value in the deque, or -1 if no such value exists. This returns fromIndex if value is present at that point, so if you chain calls to indexOf(), the subsequent fromIndex should be larger than the last-returned index.
      Overrides:
      lastIndexOf in class CharList
      Parameters:
      search - the CharSequence to look for
      fromIndex - the initial index to check (zero-indexed, starts at the head, inclusive)
      Returns:
      An index of last occurrence of value at or after fromIndex in the deque, or -1 if no such value exists
    • lastIndexOfIgnoreCase

      public int lastIndexOfIgnoreCase(char search)
      Returns the index of the last occurrence of value in the deque, or -1 if no such value exists. This compares the given char as if both it and this CharSequence have had every character converted to upper case by Casing.caseUp(char).
      Overrides:
      lastIndexOfIgnoreCase in class CharList
      Parameters:
      search - the char to look for
      Returns:
      An index of the last occurrence of value in the deque or -1 if no such value exists
    • lastIndexOfIgnoreCase

      public int lastIndexOfIgnoreCase(char search, int fromIndex)
      Returns the index of last occurrence of search in the deque, starting from fromIndex and going backwards, or -1 if no such value exists. This returns fromIndex if search is present at that point, so if you chain calls to indexOf(), the subsequent fromIndex should be smaller than the last-returned index. This compares the given char as if both it and this CharSequence have had every character converted to upper case by Casing.caseUp(char).
      Overrides:
      lastIndexOfIgnoreCase in class CharList
      Parameters:
      search - the char to look for
      fromIndex - the initial index to check (zero-indexed, starts at the head, inclusive)
      Returns:
      An index of last occurrence of value at or before fromIndex in the deque, or -1 if no such value exists
    • lastIndexOfIgnoreCase

      public int lastIndexOfIgnoreCase(CharSequence search)
      Returns the index of the last occurrence of value in the deque, or -1 if no such value exists. This compares the given CharSequence as if both it and this CharSequence have had every character converted to upper case by Casing.caseUp(char).
      Overrides:
      lastIndexOfIgnoreCase in class CharList
      Parameters:
      search - the CharSequence to look for
      Returns:
      An index of the last occurrence of value in the deque or -1 if no such value exists
    • lastIndexOfIgnoreCase

      public int lastIndexOfIgnoreCase(CharSequence search, int fromIndex)
      Returns the index of the last occurrence of value in the deque, or -1 if no such value exists. This returns fromIndex if value is present at that point, so if you chain calls to indexOf(), the subsequent fromIndex should be larger than the last-returned index. This compares the given CharSequence as if both it and this CharSequence have had every character converted to upper case by Casing.caseUp(char).
      Overrides:
      lastIndexOfIgnoreCase in class CharList
      Parameters:
      search - the CharSequence to look for
      fromIndex - the initial index to check (zero-indexed, starts at the head, inclusive)
      Returns:
      An index of last occurrence of value at or after fromIndex in the deque, or -1 if no such value exists
    • listIterator

      public CharList.CharListIterator listIterator()
    • listIterator

      public CharList.CharListIterator listIterator(int index)
      Gets an iterator over this deque that starts at the given index.
      Parameters:
      index - the index to start iterating from in this deque
      Returns:
      a reused iterator starting at the given index
    • removeValue

      public boolean removeValue(char value)
      Removes the first instance of the specified value in the deque.
      Parameters:
      value - the char to remove
      Returns:
      true if value was found and removed, false otherwise
    • removeLastValue

      public boolean removeLastValue(char value)
      Removes the last instance of the specified value in the deque.
      Parameters:
      value - the char to remove
      Returns:
      true if value was found and removed, false otherwise
    • removeAt

      public char removeAt(int index)
      Removes the element at the specified position in this deque. Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the deque.
      Overrides:
      removeAt in class CharList
      Parameters:
      index - the index of the element to be removed
      Returns:
      the element previously at the specified position
    • pollAt

      public char pollAt(int index)
      Removes the element at the specified position in this deque. Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the deque, or the default value if this is empty. This will not throw an Exception in normal usage, even if index is negative (which makes this simply return pollFirst()) or greater than or equal to size() (which makes this return pollLast()).
      This is an alias for poll(int) for compatibility with primitive-backed lists and deques; poll(int) can refer to the method that removes an item by value, not by index, in those types.
      Parameters:
      index - the index of the element to be removed
      Returns:
      the element previously at the specified position
    • poll

      public char poll(int index)
      Removes the element at the specified position in this deque. Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the deque, or the default value if this is empty. This will not throw an Exception in normal usage, even if index is negative (which makes this simply return pollFirst()) or greater than or equal to size() (which makes this return pollLast()).
      Parameters:
      index - the index of the element to be removed
      Returns:
      the element previously at the specified position
    • removeAll

      public boolean removeAll(PrimitiveCollection.OfChar c)
      Description copied from class: CharList
      Removes from this CharList all occurrences of any elements contained in the specified collection.
      Specified by:
      removeAll in interface PrimitiveCollection.OfChar
      Overrides:
      removeAll in class CharList
      Parameters:
      c - a primitive collection of int items to remove fully, such as another CharList or a CharDeque
      Returns:
      true if this list was modified.
    • removeEach

      public boolean removeEach(PrimitiveCollection.OfChar c)
      Description copied from class: CharList
      Removes from this CharList element-wise occurrences of elements contained in the specified collection. Note that if a value is present more than once in this CharList, only one of those occurrences will be removed for each occurrence of that value in c. If c has the same contents as this CharList or has additional items, then removing each of c will clear this.
      Specified by:
      removeEach in interface PrimitiveCollection.OfChar
      Overrides:
      removeEach in class CharList
      Parameters:
      c - a primitive collection of int items to remove one-by-one, such as another CharList or a CharDeque
      Returns:
      true if this list was modified.
    • retainAll

      public boolean retainAll(PrimitiveCollection.OfChar other)
      Description copied from class: CharList
      Removes all items from this CharList that are not present somewhere in other, any number of times.
      Specified by:
      retainAll in interface PrimitiveCollection.OfChar
      Overrides:
      retainAll in class CharList
      Parameters:
      other - a PrimitiveCollection.OfChar that contains the items that this should keep, whenever present
      Returns:
      true if this CharList changed as a result of this call, otherwise false
    • notEmpty

      public boolean notEmpty()
      Returns true if the deque has one or more items.
      Specified by:
      notEmpty in interface PrimitiveCollection<Character>
      Overrides:
      notEmpty in class CharList
      Returns:
      true if the list has one or more items, or false otherwise
    • isEmpty

      public boolean isEmpty()
      Returns true if the deque is empty.
      Specified by:
      isEmpty in interface CharSequence
      Specified by:
      isEmpty in interface Ordered.OfChar
      Specified by:
      isEmpty in interface PrimitiveCollection<Character>
      Overrides:
      isEmpty in class CharList
      Returns:
      true if the list is empty, or false if it has any items
    • subSequence

      public CharDeque subSequence(int start, int end)
      Gets a new CharDeque from the given subrange, clamping start and end so that this will not throw any Exception.
      Specified by:
      subSequence in interface CharSequence
      Specified by:
      subSequence in interface Ordered.OfChar
      Overrides:
      subSequence in class CharList
      Parameters:
      start - the start index, inclusive; clamped
      end - the end index, exclusive; clamped
      Returns:
      a new CharDeque copied from the given subrange bounds
    • substring

      public String substring(int start, int end)
      Creates a new String by copying the given subrange of this CharDeque.
      Overrides:
      substring in class CharList
      Parameters:
      start - the start index, inclusive
      end - the end index, exclusive
      Returns:
      a new String copying the given subrange of this CharDeque
    • leftString

      public String leftString(int length)
      Creates a new String by copying the given subrange of this CharDeque, from index 0 (inclusive) to length (exclusive).
      Overrides:
      leftString in class CharList
      Parameters:
      length - how many chars to use from the start onward
      Returns:
      a new String copying the given subrange of this CharDeque
    • rightString

      public String rightString(int length)
      Creates a new String by copying the given subrange of this CharDeque, from index size() - length (inclusive) to size() (exclusive).
      Overrides:
      rightString in class CharList
      Parameters:
      length - how many chars to use from the start onward
      Returns:
      a new String copying the given subrange of this CharDeque
    • append

      public CharDeque append(CharSequence csq)
      Specified by:
      append in interface Appendable
      Overrides:
      append in class CharList
    • append

      public CharDeque append(CharSequence csq, int start, int end)
      Specified by:
      append in interface Appendable
      Overrides:
      append in class CharList
    • append

      public CharDeque append(char c)
      Specified by:
      append in interface Appendable
      Overrides:
      append in class CharList
    • appendLine

      public CharDeque appendLine()
      Appends a literal newline (Unicode character u000A).
      Overrides:
      appendLine in class CharList
      Returns:
      this, for chaining.
    • line

      public CharDeque line()
      Appends a literal newline (Unicode character u000A). This is identical to appendLine() but is faster to type or recommend.
      Overrides:
      line in class CharList
      Returns:
      this, for chaining.
    • append

      public CharDeque append(int number)
      Appends the base-10 signed textual form of the given number, without allocating. This uses Base.appendSigned(CharSequence, int).
      Overrides:
      append in class CharList
      Parameters:
      number - the int to append
      Returns:
      this, for chaining
    • append

      public CharDeque append(long number)
      Appends the base-10 signed textual form of the given number, without allocating. This uses Base.appendSigned(CharSequence, long). This does not append a trailing 'L'.
      Overrides:
      append in class CharList
      Parameters:
      number - the long to append
      Returns:
      this, for chaining
    • append

      public CharDeque append(float number)
      Appends the base-10 decimal or engineering textual form of the given number, without allocating. This uses Base.appendGeneral(CharSequence, float). This does not append a trailing 'f'.
      Overrides:
      append in class CharList
      Parameters:
      number - the float to append
      Returns:
      this, for chaining
    • append

      public CharDeque append(double number)
      Appends the base-10 decimal or engineering textual form of the given number, without allocating. This uses Base.appendGeneral(CharSequence, double).
      Overrides:
      append in class CharList
      Parameters:
      number - the double to append
      Returns:
      this, for chaining
    • append

      public CharDeque append(boolean value)
      Appends either the four chars 't', 'r', 'u', 'e' if value is true, or the five chars 'f', 'a', 'l', 's', 'e' if it is false.
      Overrides:
      append in class CharList
      Parameters:
      value - either true or false
      Returns:
      this, for chaining
    • first

      public char first()
      Returns the first (head) item in the deque (without removing it).
      Specified by:
      first in interface PrimitiveCollection.OfChar
      Overrides:
      first in class CharList
      Returns:
      the first item, without modifying this
      Throws:
      NoSuchElementException - when the deque is empty
      See Also:
    • last

      public char last()
      Returns the last (tail) item in the deque (without removing it).
      Throws:
      NoSuchElementException - when the deque is empty
      See Also:
    • get

      public char get(int index)
      Returns the element at the specified position in this deque. Like ArrayList or CharList, but unlike LinkedList, this runs in O(1) time. It is expected to be slightly slower than CharList.get(int), which also runs in O(1) time. Unlike get() in ArrayList or CharList, this considers negative indices to refer to the first item, and too-large indices to refer to the last item. That means it delegates to getFirst() or getLast() in those cases instead of throwing an IndexOutOfBoundsException, though it may throw a NoSuchElementException if the deque is empty and there is no item it can get.
      Overrides:
      get in class CharList
      Parameters:
      index - index of the element to return
      Returns:
      the element at the specified position in this deque
      Throws:
      NoSuchElementException - if the deque is empty
    • peekAt

      public char peekAt(int index)
      Returns the element at the specified position in this deque. Like ArrayList or CharList, but unlike LinkedList, this runs in O(1) time. It is expected to be slightly slower than CharList.get(int), which also runs in O(1) time. Unlike get() in ArrayList or CharList, this considers negative indices to refer to the first item, and too-large indices to refer to the last item. That means it delegates to peekFirst() or peekLast() in those cases instead of throwing an IndexOutOfBoundsException, and it will return the default value if the deque is empty. Unless changed, the default value is usually null.
      Parameters:
      index - index of the element to return
      Returns:
      the element at the specified position in this deque
    • assign

      public char assign(int index, char item)
      Replaces the element at the specified position in this list with the specified element. If this deque is empty or the index is larger than the largest index currently in this deque, this delegates to addLast(char) and returns the default value. If the index is negative, this delegates to addFirst(char) and returns the default value.
      Parameters:
      index - index of the element to replace
      item - element to be stored at the specified position
      Returns:
      the element previously at the specified position
    • set

      public void set(int index, char item)
      Replaces the element at the specified position in this list with the specified element. If this deque is empty or the index is larger than the largest index currently in this deque, this delegates to addLast(char) and returns the default value. If the index is negative, this delegates to addFirst(char) and returns the default value.
      Overrides:
      set in class CharList
      Parameters:
      index - index of the element to replace
      item - element to be stored at the specified position
    • replaceAll

      public void replaceAll(com.github.tommyettinger.function.CharToCharFunction operator)
      Description copied from class: CharList
      Replaces each element of this list with the result of applying the given operator to that element.
      Overrides:
      replaceAll in class CharList
      Parameters:
      operator - a CharToCharFunction (a functional interface defined in funderby)
    • duplicateRange

      public boolean duplicateRange(int index, int count)
      Inserts the specified number of items at the specified index. The new items will have values equal to the values at those indices before the insertion, and the previous values will be pushed to after the duplicated range.
      Overrides:
      duplicateRange in class CharList
      Parameters:
      index - the first index to duplicate
      count - how many items to duplicate
    • clear

      public void clear()
      Removes all values from this deque. This operates in O(1) time.
      Specified by:
      clear in interface PrimitiveCollection<Character>
      Overrides:
      clear in class CharList
    • iterator

      public CharList.CharListIterator iterator()
      Returns an iterator for the items in the deque. Remove is supported.
      Reuses one of two iterators for this deque. For nested or multithreaded iteration, use CharDequeIterator(CharDeque).
      Specified by:
      iterator in interface PrimitiveCollection<Character>
      Specified by:
      iterator in interface PrimitiveCollection.OfChar
      Overrides:
      iterator in class CharList
      Returns:
      a CharIterator; use its nextChar() method instead of next()
    • descendingIterator

      public CharList.CharListIterator descendingIterator()
      Returns an iterator over the elements in this deque in reverse sequential order. The elements will be returned in order from last (tail) to first (head).
      Reuses one of two descending iterators for this deque. For nested or multithreaded iteration, use CharDequeIterator(CharDeque, boolean).
      Returns:
      an iterator over the elements in this deque in reverse sequence
    • descendingIterator

      public CharList.CharListIterator descendingIterator(int index)
      Returns an iterator over the elements in this deque in reverse sequential order. The elements will be returned in order from index backwards to first (head).
      Reuses one of two descending iterators for this deque. For nested or multithreaded iteration, use CharDequeIterator(CharDeque, boolean).
      Parameters:
      index - the index to start iterating from in this deque
      Returns:
      an iterator over the elements in this deque in reverse sequence
    • toString

      public String toString()
      Delegates to PrimitiveCollection.OfChar.toString(String, boolean) with a delimiter of ", " and square brackets enabled.
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class CharList
      Returns:
      the square-bracketed String representation of this CharDeque, with items separated by ", "
    • toDenseString

      public String toDenseString()
      Description copied from class: CharList
      Simply returns all the char items in this as one String, with no delimiters. This is the same as calling String.valueOf(charList.items, 0, charList.size()) .
      Specified by:
      toDenseString in interface PrimitiveCollection.OfChar
      Overrides:
      toDenseString in class CharList
      Returns:
      a String containing only the char items in this CharList
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface PrimitiveCollection<Character>
      Overrides:
      hashCode in class CharList
    • equals

      public boolean equals(Object object)
      Compares this with any other CharSequence for equality of length, contents, and order.
      Specified by:
      equals in interface PrimitiveCollection<Character>
      Overrides:
      equals in class CharList
      Parameters:
      object - the object to be compared for equality with this collection
      Returns:
      true if this is equal to object, or false otherwise
    • equalsIgnoreCase

      public boolean equalsIgnoreCase(CharSequence csq)
      Checks if this is equal to another CharSequence, but runs all chars in both the given text and this through Casing.caseUp(char) before comparing (making the comparison case-insensitive for almost all scripts in use today, except some situations for Georgian).
      Overrides:
      equalsIgnoreCase in class CharList
      Parameters:
      csq - any other CharSequence, such as a String, StringBuilder, or CharList
      Returns:
      true if the chars in this are equivalent to those in csq if compared as case-insensitive
    • swap

      public void swap(int first, int second)
      Switches the ordering of positions first and second, without changing any items beyond that.
      Specified by:
      swap in interface Arrangeable
      Specified by:
      swap in interface Ordered.OfChar
      Overrides:
      swap in class CharList
      Parameters:
      first - the first position, must not be negative and must be less than size()
      second - the second position, must not be negative and must be less than size()
    • reverse

      public void reverse()
      Reverses this CharDeque in-place.
      Specified by:
      reverse in interface Arrangeable
      Specified by:
      reverse in interface Ordered.OfChar
      Overrides:
      reverse in class CharList
    • shuffle

      public void shuffle(Random rng)
      Description copied from interface: Ordered.OfChar
      Pseudo-randomly shuffles the order of this Ordered in-place. You can seed rng, the random number generator, with an identical seed to reproduce a shuffle on two Ordered with the same Arrangeable.size().
      Specified by:
      shuffle in interface Arrangeable
      Specified by:
      shuffle in interface Ordered.OfChar
      Overrides:
      shuffle in class CharList
      Parameters:
      rng - any Random class, such as one from juniper
    • sort

      public void sort()
      Sorts this deque in-place using Arrays.sort(char[], int, int) in ascending order.
      Overrides:
      sort in class CharList
    • sort

      public void sort(int from, int to)
      Uses Arrays.sort(char[], int, int) to sort a (clamped) subrange of this deque.
      Overrides:
      sort in class CharList
      Parameters:
      from - first index to use, inclusive
      to - last index to use, exclusive
    • sort

      public void sort(CharComparator comparator)
      Sorts this deque in-place using CharComparators.sort(char[], int, int, CharComparator). This should operate in O(n log(n)) time or less when the internals of the deque are continuous (the head is before the tail in the array). If the internals are not continuous, this takes an additional O(n) step (where n is less than the size of the deque) to rearrange the internals before sorting. You can pass null as the value for comparator, which will make this use the natural ordering for char.
      Specified by:
      sort in interface Ordered.OfChar
      Overrides:
      sort in class CharList
      Parameters:
      comparator - the Comparator to use for char items; may be null to use the natural order of char items when char implements Comparable of char
    • sort

      public void sort(int from, int to, CharComparator comparator)
      Description copied from class: CharList
      Sorts the specified range of elements according to the order induced by the specified comparator using mergesort, or Arrays.sort(char[], int, int) if c is null. This purely uses CharComparators.sort(char[], int, int, CharComparator), and you can see its docs for more information. This clamps from and to to the valid range.
      Overrides:
      sort in class CharList
      Parameters:
      from - the index of the first element (inclusive) to be sorted
      to - the index of the last element (exclusive) to be sorted
      comparator - the comparator to determine the order of the CharList
    • getRandom

      public char getRandom(Random random)
      Gets a randomly selected item from this CharDeque, using the given random number generator. Throws a NoSuchElementException if empty.
      Parameters:
      random - any Random or subclass of it, such as AlternateRandom.
      Returns:
      a randomly selected item from this deque
    • random

      public char random(Random random)
      Gets a randomly selected item from this CharDeque, using the given random number generator.
      Specified by:
      random in interface Ordered.OfChar
      Overrides:
      random in class CharList
      Parameters:
      random - any Random or subclass of it, such as AlternateRandom.
      Returns:
      a randomly selected item from this deque, or the default value if empty
    • padLeft

      public CharDeque padLeft(int count, char padWith)
      Adds count repetitions of padWith to the start (left) of this list.
      Overrides:
      padLeft in class CharList
      Parameters:
      count - how many repetitions of padWith to add
      padWith - the item to pad with
      Returns:
      this, for chaining
    • padRight

      public CharDeque padRight(int count, char padWith)
      Adds count repetitions of padWith to the end (right) of this list.
      Overrides:
      padRight in class CharList
      Parameters:
      count - how many repetitions of padWith to add
      padWith - the item to pad with
      Returns:
      this, for chaining
    • with

      public static CharDeque with()
      Constructs an empty deque. This is usually less useful than just using the constructor, but can be handy in some code-generation scenarios when you don't know how many arguments you will have.
      Returns:
      a new deque containing nothing
    • with

      public static CharDeque with(char item)
      Creates a new CharDeque that holds only the given item, but can be resized.
      Parameters:
      item - one char item
      Returns:
      a new CharDeque that holds the given item
    • with

      public static CharDeque with(char item0, char item1)
      Creates a new CharDeque that holds only the given items, but can be resized.
      Parameters:
      item0 - a char item
      item1 - a char item
      Returns:
      a new CharDeque that holds the given items
    • with

      public static CharDeque with(char item0, char item1, char item2)
      Creates a new CharDeque that holds only the given items, but can be resized.
      Parameters:
      item0 - a char item
      item1 - a char item
      item2 - a char item
      Returns:
      a new CharDeque that holds the given items
    • with

      public static CharDeque with(char item0, char item1, char item2, char item3)
      Creates a new CharDeque that holds only the given items, but can be resized.
      Parameters:
      item0 - a char item
      item1 - a char item
      item2 - a char item
      item3 - a char item
      Returns:
      a new CharDeque that holds the given items
    • with

      public static CharDeque with(char item0, char item1, char item2, char item3, char item4)
      Creates a new CharDeque that holds only the given items, but can be resized.
      Parameters:
      item0 - a char item
      item1 - a char item
      item2 - a char item
      item3 - a char item
      item4 - a char item
      Returns:
      a new CharDeque that holds the given items
    • with

      public static CharDeque with(char item0, char item1, char item2, char item3, char item4, char item5)
      Creates a new CharDeque that holds only the given items, but can be resized.
      Parameters:
      item0 - a char item
      item1 - a char item
      item2 - a char item
      item3 - a char item
      item4 - a char item
      item5 - a char item
      Returns:
      a new CharDeque that holds the given items
    • with

      public static CharDeque with(char item0, char item1, char item2, char item3, char item4, char item5, char item6)
      Creates a new CharDeque that holds only the given items, but can be resized.
      Parameters:
      item0 - a char item
      item1 - a char item
      item2 - a char item
      item3 - a char item
      item4 - a char item
      item5 - a char item
      item6 - a char item
      Returns:
      a new CharDeque that holds the given items
    • with

      public static CharDeque with(char item0, char item1, char item2, char item3, char item4, char item5, char item6, char item7)
      Creates a new CharDeque that holds only the given items, but can be resized.
      Parameters:
      item0 - a char item
      item1 - a char item
      item2 - a char item
      item3 - a char item
      item4 - a char item
      item5 - a char item
      item6 - a char item
      item7 - a char item
      Returns:
      a new CharDeque that holds the given items
    • with

      public static CharDeque with(char... varargs)
      Creates a new CharDeque that will hold the items in the given array or varargs. This overload will only be used when a char array is supplied, or if varargs are used and there are 9 or more arguments.
      Parameters:
      varargs - either 0 or more char items, or an array of char
      Returns:
      a new CharDeque that holds the given char items
    • parse

      public static CharDeque parse(String str, String delimiter)
      Calls parse(String, String, boolean) with brackets set to false.
      Parameters:
      str - a String that will be parsed in full
      delimiter - the delimiter between items in str
      Returns:
      a new collection parsed from str
    • parse

      public static CharDeque parse(String str, String delimiter, boolean brackets)
      Creates a new collection and fills it by calling PrimitiveCollection.OfChar.addLegible(String, String, int, int) on either all of str (if brackets is false) or str without its first and last chars (if brackets is true). Each item is expected to be separated by delimiter.
      Parameters:
      str - a String that will be parsed in full (depending on brackets)
      delimiter - the delimiter between items in str
      brackets - if true, the first and last chars in str will be ignored
      Returns:
      a new collection parsed from str
    • parse

      public static CharDeque parse(String str, String delimiter, int offset, int length)
      Creates a new collection and fills it by calling PrimitiveCollection.OfChar.addLegible(String, String, int, int) with the given four parameters as-is.
      Parameters:
      str - a String that will have the given section parsed
      delimiter - the delimiter between items in str
      offset - the first position to parse in str, inclusive
      length - how many chars to parse, starting from offset
      Returns:
      a new collection parsed from str