Class Lists

java.lang.Object
com.pnfsoftware.jeb.util.collect.Lists

public class Lists extends Object
Collection of utility functions to create or manipulate concrete or abstract lists.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T> void
    add(List<T> list, int index, T elt)
    Add (insert) the element of a collection.
    static <T> void
    add(List<T> list, int index, T elt, T def)
    Add (insert) the element of a collection.
    static <T> List<T>
    add(List<T> dst, List<T> src)
    Add all elements of a source list to a destination list.
    static <T> List<T>
    addNonNulls(List<T> dst, List<? extends T> src)
    Add all non-null source elements to a destination list.
    static <T> List<T>
    addNonNulls(List<T> dst, T... elts)
    Add all non-null elements to a destination list.
    static <T extends Comparable<T>>
    int
    addSorted(List<T> sortedList, T elt)
    Insert an element into a sorted list at its natural position.
    static <T> ArrayList<T>
    Create an empty ArrayList.
    static <T> ArrayList<T>
    createArrayList(Collection<? extends T>... colls)
    Create an ArrayList containing the elements of the provided collections.
    static <T> ArrayList<T>
    Create an ArrayList containing one element.
    static <T> List<T>
    fromIterator(Iterable<T> iterable)
    Generate a list from an iterable.
    static <T> T
    get(List<? extends T> list, int index)
    Get the value of a list, safely returning null if the list is null or the index out-of-range.
    static <T> T
    get(List<? extends T> list, int index, T safeValue)
    Get the value of a list, safely returning a provided default value if the list is null or the index out-of-range.
    static <T> T
    getFirst(List<? extends T> list)
    Get the first value of a list, safely returning null if the list is null or the index out-of-range.
    static <T extends Comparable<T>>
    void
    insertIntoSortedList(List<T> list, T elt)
    Insert an additional element into a pre-sorted list and keep the list sorted.
    static <T> void
    insertIntoSortedList(List<T> list, T elt, Comparator<T> cmp, boolean reverse)
    Insert an additional element into a pre-sorted list and keep the list sorted.
    static <T> T
    last(List<T> list)
    Retrieve the last item of a List.
    static <T, R> List<? extends R>
    map(Collection<T> input, Function<? super T,? extends R> mapper)
    Apply a 1-to-1 map operation to the elements of a collection and return the list of resulting new elements.
    static <T> ArrayList<T>
    newArrayList(T... elts)
    Create an ArrayList containing the provided elements.
    static <T> List<T>
    reverse(List<T> list)
    Reverse the provided input list.
    static <T> ListIterator<T>
    Get a reverse iterator on the list.
    static <T> void
    rotate(List<T> list, boolean rotateForward)
    Rotate the elements of a list.
    static <T> void
    rotate(List<T> list, boolean rotateForward, int indexFirst, int indexLast)
    Rotate the elements of a list or a portion of the elements of a list.
    static <T> List<T>
    safe(List<T> list)
    Return a non-null list.
    static <T> T
    set(List<T> list, int index, T elt)
    Set the element of a collection.
    static <T> T
    set(List<T> list, int index, T elt, T def)
    Set the element of a collection.
    static <T> List<T>
    subList(List<T> list, int fromIndex)
    Get a tail sub-list of a list.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Lists

      public Lists()
  • Method Details

    • addSorted

      public static <T extends Comparable<T>> int addSorted(List<T> sortedList, T elt)
      Insert an element into a sorted list at its natural position.
      Type Parameters:
      T - element type
      Parameters:
      sortedList - a sorted (natural sort) list of comparable elements
      elt - the element to be inserted
      Returns:
      the insertion index
    • createArrayList

      public static <T> ArrayList<T> createArrayList()
      Create an empty ArrayList.
      Type Parameters:
      T - element type
      Returns:
      a new empty list
    • createArrayList

      public static <T> ArrayList<T> createArrayList(T elt)
      Create an ArrayList containing one element.
      Type Parameters:
      T - element type
      Parameters:
      elt - element to add
      Returns:
      a new list
    • createArrayList

      @SafeVarargs public static <T> ArrayList<T> createArrayList(Collection<? extends T>... colls)
      Create an ArrayList containing the elements of the provided collections.
      Type Parameters:
      T - element type
      Parameters:
      colls - source collections
      Returns:
      a new list
    • newArrayList

      @SafeVarargs public static <T> ArrayList<T> newArrayList(T... elts)
      Create an ArrayList containing the provided elements.
      Type Parameters:
      T - element type
      Parameters:
      elts - elements to add
      Returns:
      a new list
    • add

      public static <T> List<T> add(List<T> dst, List<T> src)
      Add all elements of a source list to a destination list.
      Type Parameters:
      T - element type
      Parameters:
      dst - destination list
      src - optional source list
      Returns:
      the destination list
    • addNonNulls

      public static <T> List<T> addNonNulls(List<T> dst, List<? extends T> src)
      Add all non-null source elements to a destination list.
      Type Parameters:
      T - element type
      Parameters:
      dst - destination list
      src - optional source list
      Returns:
      the destination list
    • addNonNulls

      @SafeVarargs public static <T> List<T> addNonNulls(List<T> dst, T... elts)
      Add all non-null elements to a destination list.
      Type Parameters:
      T - element type
      Parameters:
      dst - destination list
      elts - elements to add
      Returns:
      the destination list
    • subList

      public static <T> List<T> subList(List<T> list, int fromIndex)
      Get a tail sub-list of a list.
      Parameters:
      list - input list
      fromIndex - start index, inclusive
      Returns:
      a view of the list tail
    • get

      public static <T> T get(List<? extends T> list, int index, T safeValue)
      Get the value of a list, safely returning a provided default value if the list is null or the index out-of-range.
      Parameters:
      list - optional list
      index - requested index
      safeValue - default value
      Returns:
      the value at the index, or the default value
    • get

      public static <T> T get(List<? extends T> list, int index)
      Get the value of a list, safely returning null if the list is null or the index out-of-range.
      Parameters:
      list - optional list
      index - requested index
      Returns:
      the value at the index, or null
    • getFirst

      public static <T> T getFirst(List<? extends T> list)
      Get the first value of a list, safely returning null if the list is null or the index out-of-range.
      Parameters:
      list - optional list
      Returns:
      the first value, or null
    • reverseIterator

      public static <T> ListIterator<T> reverseIterator(List<T> list)
      Get a reverse iterator on the list. The pointer is set to the last element of the list (if any).
      Parameters:
      list - input list
      Returns:
      a list iterator positioned after the last element
    • reverse

      public static <T> List<T> reverse(List<T> list)
      Reverse the provided input list.
      Parameters:
      list - a list
      Returns:
      the input list (same object), reversed
    • map

      public static <T, R> List<? extends R> map(Collection<T> input, Function<? super T,? extends R> mapper)
      Apply a 1-to-1 map operation to the elements of a collection and return the list of resulting new elements.
      Type Parameters:
      T - type of input element
      R - type of output element
      Parameters:
      input - input collection
      mapper - a map() function
      Returns:
      output list
    • set

      public static <T> T set(List<T> list, int index, T elt, T def)
      Set the element of a collection. If the index is negative, the method throws OOB. If it is greater or equal than the current number of elements in the list, additional elements are inserted using the provided default value.
      Type Parameters:
      T - element type
      Parameters:
      list - list to update
      index - target index
      elt - element to set
      def - default value used to grow the list
      Returns:
      the element previously at the target index
    • set

      public static <T> T set(List<T> list, int index, T elt)
      Set the element of a collection. If the index is negative, the method throws OOB. If it is greater or equal than the current number of elements in the list, additional elements are inserted using the null default value.
      Type Parameters:
      T - element type
      Parameters:
      list - list to update
      index - target index
      elt - element to set
      Returns:
      the element previously at the target index
    • add

      public static <T> void add(List<T> list, int index, T elt, T def)
      Add (insert) the element of a collection. If the index is negative, the method throws OOB. If it is greater that the current number of elements in the list, additional elements are inserted using the provided default value.
      Type Parameters:
      T - element type
      Parameters:
      list - list to update
      index - insertion index
      elt - element to insert
      def - default value used to grow the list
    • add

      public static <T> void add(List<T> list, int index, T elt)
      Add (insert) the element of a collection. If the index is negative, the method throws OOB. If it is greater that the current number of elements in the list, additional elements are inserted using the null default value.
      Type Parameters:
      T - element type
      Parameters:
      list - list to update
      index - insertion index
      elt - element to insert
    • safe

      public static <T> List<T> safe(List<T> list)
      Return a non-null list.
      Type Parameters:
      T - element type
      Parameters:
      list - input list, possibly null
      Returns:
      the input list or an empty list if the input was null
    • fromIterator

      public static <T> List<T> fromIterator(Iterable<T> iterable)
      Generate a list from an iterable.
      Type Parameters:
      T - element type
      Parameters:
      iterable - input iterable
      Returns:
      generated list
    • insertIntoSortedList

      public static <T extends Comparable<T>> void insertIntoSortedList(List<T> list, T elt)
      Insert an additional element into a pre-sorted list and keep the list sorted.
      Type Parameters:
      T - element type
      Parameters:
      list - a sorted list
      elt - the element to insert into the sorted list
    • insertIntoSortedList

      public static <T> void insertIntoSortedList(List<T> list, T elt, Comparator<T> cmp, boolean reverse)
      Insert an additional element into a pre-sorted list and keep the list sorted.
      Type Parameters:
      T - element type
      Parameters:
      list - a sorted list
      elt - the element to insert into the sorted list
      cmp - optional comparator to be used; if null, the elements must be comparable
      reverse - false if the list is sorted in natural (ascending) order, true if the list is sorted in reverse (descending) order
    • rotate

      public static <T> void rotate(List<T> list, boolean rotateForward)
      Rotate the elements of a list.
      Type Parameters:
      T - element type
      Parameters:
      list - a list
      rotateForward - if true, the elements at i are moved to i+1 (and the last element will replace the first one); else, the elements at i are moved to i-1 (and the first element will replace the last one)
    • rotate

      public static <T> void rotate(List<T> list, boolean rotateForward, int indexFirst, int indexLast)
      Rotate the elements of a list or a portion of the elements of a list.
      Type Parameters:
      T - element type
      Parameters:
      list - a list
      rotateForward - if true, the elements at i are moved to i+1 (and the last element will replace the first one); else, the elements at i are moved to i-1 (and the first element will replace the last one)
      indexFirst - first element to rotate (included)
      indexLast - last element to rotate (included), must be greater than indexFirst
    • last

      public static <T> T last(List<T> list)
      Retrieve the last item of a List. This method is safe and returns null if the list is null or empty.
      Type Parameters:
      T - element type
      Parameters:
      list - a list
      Returns:
      the last item at index list.size() - 1 or null if list is null or empty