Class CollectionUtils

java.lang.Object
com.nomagic.utils.CollectionUtils

@OpenApiAll public class CollectionUtils extends Object
Collection related utility methods.
  • Constructor Details

    • CollectionUtils

      public CollectionUtils()
  • Method Details

    • convert

      public static <S, T, C extends Collection<T>> C convert(Collection<S> source, C target, Converter<? super S,? super T> converter)
      Convert one (source) collection into another (target) collection. Converts each source element and adds converted element to target collection.
      Type Parameters:
      S - source collection element type.
      T - target collection element type.
      C - target collection type.
      Parameters:
      source - source collection.
      target - target collection.
      converter - converts each element.
      Returns:
      target collection.
    • append

      public static <T> Collection<T> append(Collection<T> target, Collection<? extends T> source, boolean allowDuplication)
      Append source to target collection.
      Parameters:
      target - target
      source - source
      allowDuplication - do not check for already added element if true
      Returns:
      appended collection
    • append

      public static <T> Collection<T> append(Collection<T> target, Iterator<? extends T> sourceIterator, boolean allowDuplication)
      Append source to target collection.
      Parameters:
      target - target
      sourceIterator - source iterator.
      allowDuplication - do not check for already added element if true
      Returns:
      appended collection
    • append

      public static <T> Collection<T> append(Collection<T> target, Iterator<? extends T> sourceIterator, boolean allowDuplication, boolean allowNulls)
      Append source to target collection.
      Parameters:
      target - target
      sourceIterator - source iterator.
      allowDuplication - do not check for already added element if true
      allowNulls - allows nulls
      Returns:
      appended collection
    • append

      public static <T> Collection<T> append(Collection<T> target, T[] source, boolean allowDuplication)
      Append source array to target collection.
      Parameters:
      target - target
      source - source
      allowDuplication - do not check for already added element if true
      Returns:
      appended vector
    • contains

      public static boolean contains(Iterator it, Object o)
      Checks if given iterator contains given object.
      Parameters:
      it - the iterator.
      o - the object.
      Returns:
      true, if it contains o.
    • containsAny

      public static boolean containsAny(Collection location, Collection what)
      Returns true if location contains any element from what
      Parameters:
      location - location collection
      what - what collection.
      Returns:
      boolean.
    • createCollection

      public static <C extends Collection<E>, E> C createCollection(Class<C> collection, Iterator<E> it)
      Creates given type collection and fills it with objects from given iterator
      Parameters:
      collection - type collection.
      it - The given iterator.
      Returns:
      the result collection.
    • notDuplicatedList

      public static <T> Collection<T> notDuplicatedList(Collection<T> collection)
      Removes duplicates from given collection. After remove one element will be in collection only one time.
      Parameters:
      collection - collection to operate with. (makes sense when col are list (sets cant have identical elements).
      Returns:
      collection.
    • notDublicatedList

      @Deprecated public static <T> Collection<T> notDublicatedList(Collection<T> collection)
      Removes duplicates from given collection. After remove one element will be in collection only one time.
      Parameters:
      collection - collection to operate with. (makes sense when col are list (sets cant have identical elements).
      Returns:
      collection.
    • createStringRepresentation

      public static <T> String createStringRepresentation(Collection<T> collection, String delimiter, Converter<T,String> converter)
      Create string representation of given collection.
      Parameters:
      collection - collection.
      delimiter - values delimiter.
      converter - convert object to string.
      Returns:
      string representation of collection.
    • createFromStringRepresentation

      public static <T> Collection<T> createFromStringRepresentation(String string, String delimiter, Converter<String,T> converter)
      Create collection from string.
      Parameters:
      string - string representation.
      delimiter - values delimiter.
      converter - convert string to object.
      Returns:
      collection.
    • leaveElements

      public static void leaveElements(List elements, int numberToLeave)
      Leaves a given number of first elements in the collection.
      Parameters:
      elements - elements to filter.
      numberToLeave - number of elements to leave.
    • mapToString

      public static String mapToString(Map<String,String> map)
      Serializes map to string.
      Parameters:
      map - map to serialize.
      Returns:
      string representation of the map.
    • stringToMap

      public static Map<String,String> stringToMap(String input)
      Deserialize map from string.
      Parameters:
      input - input string.
      Returns:
      map.
    • filterByClassType

      public static <T> List<T> filterByClassType(Collection<?> input, Class<T> type)
      Filters and casts collection from one type to another
      Type Parameters:
      T - type
      Parameters:
      input - input collection
      type - desired output collection type
      Returns:
      new typed list
    • setSingleValue

      public static <T> void setSingleValue(Collection<T> collection, T value)
      Removes all values from a given collection and adds a new one.
      Parameters:
      collection - collection
      value - a new value
    • setFirstValue

      public static <T> void setFirstValue(Collection<T> collection, @CheckForNull T value)
      Set first value of the given collection. If collection is empty, adds a new value. If value is null, removes first value from collection.
      Parameters:
      collection - collection
      value - a new value
    • toOptimizedContainsCollection

      public static <T> Collection<T> toOptimizedContainsCollection(Collection<T> collection)
      Wrap the specified collection into containable collection that ensures optimized {{Collection.contains()}} performance. The provided collection should not change while the wrapped collection is used.
      Parameters:
      collection - a collection to wrap into containable collection
      Returns:
      return wrapped collection.
    • toOptimizedCacheCollection

      public static <T> Collection<T> toOptimizedCacheCollection(Collection<T> collection)
      Optimized for 1) minimal memory footprint, for the stored cache data to be as small as possible 2) contains() performance, while preserving iteration order and performance Returned collection in unmodifiable
    • equals

      public static boolean equals(Collection<?> collection1, Collection<?> collection2)
      Checks if both collections are equal - size the same and elements by order are the same
      Parameters:
      collection1 - first collection
      collection2 - second collection
      Returns:
      true if size the same and elements by order are the same
    • addIfNotNull

      public static <T> void addIfNotNull(@CheckForNull T element, Collection<T> collection)