Package com.nomagic.utils
Class CollectionUtils
java.lang.Object
com.nomagic.utils.CollectionUtils
Collection related utility methods.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> void
addIfNotNull
(T element, Collection<T> collection) Adds the given element to the collection unless it is null.static <T> Collection<T>
append
(Collection<T> target, Collection<? extends T> source, boolean allowDuplication) Append a source to a target collection.static <T> Collection<T>
append
(Collection<T> target, Iterator<? extends T> sourceIterator, boolean allowDuplication) Append a source to a target collection.static <T> Collection<T>
append
(Collection<T> target, Iterator<? extends T> sourceIterator, boolean allowDuplication, boolean allowNulls) Append a source to a target collection.static <T> Collection<T>
append
(Collection<T> target, T[] source, boolean allowDuplication) Append source array to a target collection.static boolean
Checks if given iterator contains a given object.static boolean
containsAny
(Collection location, Collection what) Returns true if location contains any element from whatstatic <S,
T, C extends Collection<T>>
Cconvert
(Collection<S> source, C target, Converter<? super S, ? super T> converter) Convert one (source) collection into another (target) collection.static <T> List<T>
copyAndAdd
(List<T> list, Collection<T> toAdd) Creates copy of the given list, or new list if null is provided.static <T> List<T>
copyAndAdd
(List<T> list, T element) Creates copy of the given list, or new list if null is provided.static <C extends Collection<E>,
E>
CcreateCollection
(Class<C> collection, Iterator<E> it) Creates a given type collection and fills it with objects from given iteratorstatic <T> Collection<T>
createFromStringRepresentation
(String string, String delimiter, Converter<String, T> converter) Create collection from string.static <T> String
createStringRepresentation
(Collection<T> collection, String delimiter, Converter<T, String> converter) Create string representation of given collection.static boolean
equals
(Collection<?> collection1, Collection<?> collection2) Checks if both collections are equal - size the same and elements by order are the samestatic <T> List<T>
filterByClassType
(Collection<?> input, Class<T> type) Filters and casts collection from one type to anotherstatic <T> Stream<T>
filterByClassType
(Stream<?> stream, Class<T> type) Filter and map according given class.static <T> T
find
(Collection<T> input, Predicate<T> predicate) Looks for object matching given predicate.static <T> T
findByClassType
(Collection<?> input, Class<T> type) Looks for object of give class in the given collection.static void
leaveElements
(List elements, int numberToLeave) Leaves a given number of first elements in the collection.static <T> List<T>
listOf
(T element) Creates unmodifiableList
with a given element.static <T> List<T>
Appends a given element to new unmodifiableList
constructed from the given list.static String
mapToString
(Map<String, String> map) Serializes map to string.static <T> Collection<T>
notDublicatedList
(Collection<T> collection) Deprecated, for removal: This API element is subject to removal in a future version.static <T> Collection<T>
notDuplicatedList
(Collection<T> collection) Removes duplicates from a given collection.static <T> void
setFirstValue
(Collection<T> collection, T value) Set first value of the given collection.static <T> void
setSingleValue
(Collection<T> collection, T value) Removes all values from a given collection and adds a new one.static <T> boolean
startsWith
(Collection<T> prefixCollection, Collection<T> collection) Checks if collection starts with prefixCollection Example: collection is "A.B.C", prefixCollection is "A.B".stringToMap
(String input) Deserialize map from string.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 performancestatic <T> Collection<T>
toOptimizedContainsCollection
(Collection<T> collection) Wrap the specified collection into containable collection that ensures optimized {{Collection.contains()}} performance.
-
Constructor Details
-
CollectionUtils
public CollectionUtils()
-
-
Method Details
-
convert
public static <S,T, C convertC extends Collection<T>> (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 a converted element to a 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 a source to a target collection.- Parameters:
target
- targetsource
- sourceallowDuplication
- do not check for an 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 a source to a target collection.- Parameters:
target
- targetsourceIterator
- source iterator.allowDuplication
- do not check for an 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 a source to a target collection.- Parameters:
target
- targetsourceIterator
- source iterator.allowDuplication
- do not check for an already added element if trueallowNulls
- allows nulls- Returns:
- appended collection
-
append
Append source array to a target collection.- Parameters:
target
- targetsource
- sourceallowDuplication
- do not check for an already added element if true- Returns:
- appended vector
-
contains
Checks if given iterator contains a given object.- Parameters:
it
- the iterator.o
- the object.- Returns:
- true, if it contains o.
-
containsAny
Returns true if location contains any element from what- Parameters:
location
- location collectionwhat
- what collection.- Returns:
- boolean.
-
createCollection
Creates a given type collection and fills it with objects from given iterator- Parameters:
collection
- type collection.it
- The given iterator.- Returns:
- the result collection.
-
notDuplicatedList
Removes duplicates from a 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(forRemoval=true) public static <T> Collection<T> notDublicatedList(Collection<T> collection) Deprecated, for removal: This API element is subject to removal in a future version.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 collection is list (set 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
Leaves a given number of first elements in the collection.- Parameters:
elements
- elements to filter.numberToLeave
- number of elements to leave.
-
mapToString
Serializes map to string.- Parameters:
map
- map to serialize.- Returns:
- string representation of the map.
-
stringToMap
Deserialize map from string.- Parameters:
input
- input string.- Returns:
- map.
-
filterByClassType
Filters and casts collection from one type to another- Type Parameters:
T
- type- Parameters:
input
- input collectiontype
- desired output collection type- Returns:
- new typed list
-
filterByClassType
Filter and map according given class.- Parameters:
stream
- stream to filer and maptype
- desired output stream type- Returns:
- filtered and mapped stream
-
findByClassType
Looks for object of give class in the given collection.- Type Parameters:
T
- type- Parameters:
input
- input collectiontype
- desired output collection type- Returns:
- found object
-
find
Looks for object matching given predicate.- Parameters:
input
- input collectionpredicate
- predicate to test- Returns:
- found object
-
setSingleValue
Removes all values from a given collection and adds a new one.- Parameters:
collection
- collectionvalue
- a new value
-
setFirstValue
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
- collectionvalue
- a new value
-
toOptimizedContainsCollection
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
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 performanceReturned collection in unmodifiable
-
equals
Checks if both collections are equal - size the same and elements by order are the same- Parameters:
collection1
- first collectioncollection2
- second collection- Returns:
- true if size the same and elements by order are the same
-
addIfNotNull
Adds the given element to the collection unless it is null.- Parameters:
element
- nullable element to addcollection
- modifiable collection
-
copyAndAdd
Creates copy of the given list, or new list if null is provided. Then adds the given element and returns the copy.- Parameters:
element
- element to addlist
- nullable list to create copy of- Returns:
- copied and appended list
-
copyAndAdd
Creates copy of the given list, or new list if null is provided. Then adds the given collection at the end and returns the copy.- Parameters:
toAdd
- collection to addlist
- nullable list to create copy of- Returns:
- copied and appended list
-
startsWith
Checks if collection starts with prefixCollection Example: collection is "A.B.C", prefixCollection is "A.B". Result would be true.- Parameters:
prefixCollection
- collection that is used to check if other collections starts with itcollection
- collection to check- Returns:
- true if starts with prefixCollection, else false
-
listOf
Creates unmodifiableList
with a given element. Or empty unmodifiable list if element is null.- Type Parameters:
T
- any object- Parameters:
element
- element- Returns:
- list
-
listOf
Appends a given element to new unmodifiableList
constructed from the given list. Returns the given list if an element is null.- Type Parameters:
T
- any object- Parameters:
element
- elementlist
- list- Returns:
- list
-
notDuplicatedList(java.util.Collection)