Class CollectionUtils

java.lang.Object
org.eclipse.cdt.core.parser.util.CollectionUtils

public final class CollectionUtils extends Object
Useful utility methods for dealing with Collections.
Restriction:
This class is not intended to be instantiated by clients.
  • Method Details

    • reverseIterator

      public static <T> Iterator<T> reverseIterator(List<T> list)
      Returns an iterator that iterates backwards over the given list. The remove() method is not implemented and will throw UnsupportedOperationException. The returned iterator does not support the remove() method.
      Throws:
      NullPointerException - if list is null
    • reverseIterable

      public static <T> Iterable<T> reverseIterable(List<T> list)
      Allows a foreach loop to iterate backwards over a list from the end to the start.

      Example use:

           for (Object o : reverseIterable(list)) { ... }
       
      Throws:
      NullPointerException - if list is null
    • iterable

      public static <T> Iterable<T> iterable(Iterator<T> iter)
      Creates an Iterable instance that just returns the given Iterator from its iterator() method. This is useful for using an iterator in a foreach loop directly.

      Example use:

           for (Object o : iterable(iterator)) { ... }
       
      Throws:
      NullPointerException - if list is null
    • findFirstAndRemove

      public static <T> T findFirstAndRemove(List<?> list, Class<T> clazz)
      Finds the first object in the heterogeneous list that is an instance of the given class, removes it from the list, and returns it. If there is not object in the list of the given type the list is left unmodified and null is returned.
      Throws:
      NullPointerException - if list or clazz is null
      UnsupportedOperationException - if the list's Iterator does not support the remove() method
    • merge

      public static <T, U extends Collection<T>> U merge(U c1, U c2)
      Combines two collections into one.
      Parameters:
      c1 - The first collection. May be modified as a result of the call. May be null.
      c2 - The second collection. May be null.
      Returns:
      A collection containing elements from both input collections, or null if both, c1 and c2 are null.
      Since:
      5.4
    • listMapGet

      public static <T, U> List<U> listMapGet(Map<T,List<U>> m, T t)
      Returns a List<U> corresponding to a T in a Map<T, List<U>>. If the mapping doesn't exist, creates it with an empty list as the initial value.
      Since:
      5.6
    • filter

      public static <T> Collection<T> filter(Collection<T> collection, IUnaryPredicate<T> predicate)
      Filter the elements of a collection down to just the ones that match the given predicate.
      Since:
      5.6