Package org.codehaus.plexus.util
Class CollectionUtils
- java.lang.Object
-
- org.codehaus.plexus.util.CollectionUtils
-
-
Constructor Summary
Constructors Constructor Description CollectionUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <E> Map<E,Integer>
getCardinalityMap(Collection<E> col)
Returns aMap
mapping each unique element in the givenCollection
to anInteger
representing the number of occurrences of that element in theCollection
.static <E> Collection<E>
intersection(Collection<E> a, Collection<E> b)
Returns aCollection
containing the intersection of the givenCollection
s.static <E> List<E>
iteratorToList(Iterator<E> it)
static <K,V>
Map<K,V>mergeMaps(Map<K,V>[] maps)
Take a series ofMap
s and merge them where the ordering of the array from 0..n is the dominant order.static <K,V>
Map<K,V>mergeMaps(Map<K,V> dominantMap, Map<K,V> recessiveMap)
Take a dominant and recessive Map and merge the key:value pairs where the recessive Map may add key:value pairs to the dominant Map but may not override any existing key:value pairs.static <T> Collection<T>
subtract(Collection<T> a, Collection<T> b)
Returns aCollection
containing a - b.
-
-
-
Method Detail
-
mergeMaps
public static <K,V> Map<K,V> mergeMaps(Map<K,V> dominantMap, Map<K,V> recessiveMap)
Take a dominant and recessive Map and merge the key:value pairs where the recessive Map may add key:value pairs to the dominant Map but may not override any existing key:value pairs. If we have two Maps, a dominant and recessive, and their respective keys are as follows: dominantMapKeys = { a, b, c, d, e, f } recessiveMapKeys = { a, b, c, x, y, z } Then the result should be the following: resultantKeys = { a, b, c, d, e, f, x, y, z }- Parameters:
dominantMap
- Dominant Map.recessiveMap
- Recessive Map.- Returns:
- The result map with combined dominant and recessive values.
-
mergeMaps
public static <K,V> Map<K,V> mergeMaps(Map<K,V>[] maps)
Take a series ofMap
s and merge them where the ordering of the array from 0..n is the dominant order.- Parameters:
maps
- An array of Maps to merge.- Returns:
- Map The result Map produced after the merging process.
-
intersection
public static <E> Collection<E> intersection(Collection<E> a, Collection<E> b)
Returns aCollection
containing the intersection of the givenCollection
s.The cardinality of each element in the returned
Collection
will be equal to the minimum of the cardinality of that element in the two givenCollection
s.- Parameters:
a
- The first collectionb
- The second collection- Returns:
- The intersection of a and b, never null
- See Also:
Collection.retainAll(java.util.Collection<?>)
-
subtract
public static <T> Collection<T> subtract(Collection<T> a, Collection<T> b)
Returns aCollection
containing a - b. The cardinality of each element e in the returnedCollection
will be the cardinality of e in a minus the cardinality of e in b, or zero, whichever is greater.- Parameters:
a
- The start collectionb
- The collection that will be subtracted- Returns:
- The result of the subtraction
- See Also:
Collection.removeAll(java.util.Collection<?>)
-
getCardinalityMap
public static <E> Map<E,Integer> getCardinalityMap(Collection<E> col)
Returns aMap
mapping each unique element in the givenCollection
to anInteger
representing the number of occurrences of that element in theCollection
. An entry that maps to null indicates that the element does not appear in the givenCollection
.- Parameters:
col
- The collection to count cardinalities for- Returns:
- A map of counts, indexed on each element in the collection
-
-