Class CollectionUtil
- java.lang.Object
 - 
- org.identityconnectors.common.CollectionUtil
 
 
- 
public final class CollectionUtil extends java.lang.Object 
- 
- 
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> java.util.List<T>asReadOnlyList(java.util.List<T> list)Returns a read-only list.static <T,K>
java.util.Map<T,K>asReadOnlyMap(java.util.Map<T,K> map)static booleanequals(java.lang.Object o1, java.lang.Object o2)Equality function that properly handles arrays, lists, maps, lists of arrays, and maps of arrays.static booleanequals(java.lang.Object o1, java.lang.Object o2, boolean equalsIgnoreCase)Equality function that properly handles arrays, lists, maps, lists of arrays, and maps of arrays.static <T> intforceCompare(java.lang.Object o1, java.lang.Object o2)Forces the compare of two comparable objects and removes any warnings generated by the compiler.static inthashCode(java.lang.Object o)hashCode function that properly handles arrays, collections, maps, collections of arrays, and maps of arrays.static <T> java.util.Set<T>intersection(java.util.Collection<T> c1, java.util.Collection<T> c2)Returns the intersection of twoCollections as an unmodifiable set.static booleanisCaseInsensitiveMap(java.util.Map<?,?> map)Returns true if the given map is a case-insensitive map.static booleanisCaseInsensitiveSet(java.util.Set<?> set)Returns true if the given set is a case-insensitive set.static <T> booleanisEmpty(java.util.Collection<T> c)Determine ifCollectionis empty or not, protects against null being passed in.static <T> java.util.SortedMap<java.lang.String,T>newCaseInsensitiveMap()Creates a case-insensitive map.static java.util.SortedSet<java.lang.String>newCaseInsensitiveSet()Creates a case-insensitive set.static <T> java.util.List<T>newList(java.util.Collection<? extends T> c)Create a modifiable list from theCollectionprovided.static <T> java.util.List<T>newList(T... arr)Create a modifiable list from the arguments.static java.util.Map<java.lang.String,java.lang.String>newMap(java.util.Properties properties)static <T,K>
java.util.Map<T,K>newMap(T[] k, K[] v)Builds a map from two arrays.static <T,K>
java.util.Map<T,K>newMap(T k0, K v0)static <T,K>
java.util.Map<T,K>newMap(T k0, K v0, T k1, K v1)static <T,K>
java.util.Map<T,K>newMap(T k0, K v0, T k1, K v1, T k2, K v2)static <T,K>
java.util.Map<T,K>newMap(T k0, K v0, T k1, K v1, T k2, K v2, T k3, K v3)static <T,K>
java.util.Map<T,K>newMap(T k0, K v0, T k1, K v1, T k2, K v2, T k3, K v3, T k4, K v4)static <T,K>
java.util.Map<T,K>newMap(T k0, K v0, T k1, K v1, T k2, K v2, T k3, K v3, T k4, K v4, T k5, K v5)static <T,K>
java.util.Map<T,K>newMapFromLists(java.util.List<T> keys, java.util.List<K> values)Converts twoListto a map.static <T> java.util.List<T>newReadOnlyList(java.util.Collection<? extends T> c)Creates an unmodifiableListfrom a collection.static <T> java.util.List<T>newReadOnlyList(java.util.List<? extends T> list)Create an unmodifiableListbased on theListpassed in checks for null and returns an empty list if null is passed in.static <T> java.util.List<T>newReadOnlyList(T... obj)Creates an unmodifiableListfrom a variable number arguments.static <T,K>
java.util.Map<T,K>newReadOnlyMap(java.util.Map<T,K> map)static <T> java.util.Map<T,T>newReadOnlyMap(T[][] kv)static <T> java.util.Set<T>newReadOnlySet(java.util.Collection<T> c)Creates an unmodifiable set from aCollection.static <T> java.util.Set<T>newReadOnlySet(T... arr)Creates an unmodifiable set from a variable number arguments.static <T> java.util.Set<T>newSet(java.util.Collection<T> c)Creates a set that can be modified from theCollectionprovided.static <T> java.util.Set<T>newSet(T... arr)Creates a set that can be modified from the arguments.static <T extends java.lang.Object & java.lang.Comparable<? super T>>
java.util.List<T>newSortedList(java.util.Collection<? extends T> col)Create a modifiable sortedListbased on theCollectionprovided.static <T> java.util.Collection<T>nullAsEmpty(java.util.Collection<T> c)Protects fromnulland returns a new instance ofHashSet.static <T> java.util.List<T>nullAsEmpty(java.util.List<T> list)Protects fromnulland returns a new instance ofArrayListif the parameterlistisnull.static <T,K>
java.util.Map<T,K>nullAsEmpty(java.util.Map<T,K> map)Protects fromnulland returns a new instance ofHashMapif the parametermapisnull.static <T> java.util.Set<T>nullAsEmpty(java.util.Set<T> set)Protects fromnulland returns a new instance ofHashSetif the parametersetisnull.static <T> java.util.Set<T>union(java.util.Collection<T> c1, java.util.Collection<T> c2)Returns the union of twoCollections as an unmodifiable set.static <T> java.util.Collection<T>unique(java.util.Collection<T> c)UseHashSetto create a uniqueCollectionbased on the one passed in. 
 - 
 
- 
- 
Method Detail
- 
newCaseInsensitiveSet
public static java.util.SortedSet<java.lang.String> newCaseInsensitiveSet()
Creates a case-insensitive set.- Returns:
 - An empty case-insensitive set
 
 
- 
isCaseInsensitiveSet
public static boolean isCaseInsensitiveSet(java.util.Set<?> set)
Returns true if the given set is a case-insensitive set.- Parameters:
 set- The set. May be null.- Returns:
 - true if the given set is a case-insensitive set
 
 
- 
newCaseInsensitiveMap
public static <T> java.util.SortedMap<java.lang.String,T> newCaseInsensitiveMap()
Creates a case-insensitive map.- Type Parameters:
 T- The object type of the map- Returns:
 - An empty case-insensitive map
 
 
- 
isCaseInsensitiveMap
public static boolean isCaseInsensitiveMap(java.util.Map<?,?> map)
Returns true if the given map is a case-insensitive map.- Parameters:
 map- The map. May be null.- Returns:
 - true if the given map is a case-insensitive map
 
 
- 
nullAsEmpty
public static <T> java.util.Collection<T> nullAsEmpty(java.util.Collection<T> c)
Protects fromnulland returns a new instance ofHashSet. if the parameter c is null.- Type Parameters:
 T- the type of the collection- Parameters:
 c- collection to check- Returns:
 - if null new 
HashSetotherwise the parameter that was passed in or 
 
- 
nullAsEmpty
public static <T,K> java.util.Map<T,K> nullAsEmpty(java.util.Map<T,K> map)
Protects fromnulland returns a new instance ofHashMapif the parametermapisnull. Otherwise return the parameter that was passed in. 
- 
nullAsEmpty
public static <T> java.util.Set<T> nullAsEmpty(java.util.Set<T> set)
Protects fromnulland returns a new instance ofHashSetif the parametersetisnull. Otherwise return the parameter that was passed in. 
- 
nullAsEmpty
public static <T> java.util.List<T> nullAsEmpty(java.util.List<T> list)
Protects fromnulland returns a new instance ofArrayListif the parameterlistisnull. Otherwise return the parameter that was passed in. 
- 
isEmpty
public static <T> boolean isEmpty(java.util.Collection<T> c)
Determine ifCollectionis empty or not, protects against null being passed in. 
- 
unique
public static <T> java.util.Collection<T> unique(java.util.Collection<T> c)
UseHashSetto create a uniqueCollectionbased on the one passed in. The method protects against null. The returnedCollectionis unmodifiable. 
- 
newReadOnlyMap
public static <T,K> java.util.Map<T,K> newReadOnlyMap(java.util.Map<T,K> map)
 
- 
asReadOnlyMap
public static <T,K> java.util.Map<T,K> asReadOnlyMap(java.util.Map<T,K> map)
 
- 
newReadOnlyMap
public static <T> java.util.Map<T,T> newReadOnlyMap(T[][] kv)
 
- 
newMapFromLists
public static <T,K> java.util.Map<T,K> newMapFromLists(java.util.List<T> keys, java.util.List<K> values)Converts twoListto a map. The order is important here because each key will map to one value. 
- 
newMap
public static java.util.Map<java.lang.String,java.lang.String> newMap(java.util.Properties properties)
 
- 
newMap
public static <T,K> java.util.Map<T,K> newMap(T k0, K v0) 
- 
newMap
public static <T,K> java.util.Map<T,K> newMap(T k0, K v0, T k1, K v1) 
- 
newMap
public static <T,K> java.util.Map<T,K> newMap(T k0, K v0, T k1, K v1, T k2, K v2) 
- 
newMap
public static <T,K> java.util.Map<T,K> newMap(T k0, K v0, T k1, K v1, T k2, K v2, T k3, K v3) 
- 
newMap
public static <T,K> java.util.Map<T,K> newMap(T k0, K v0, T k1, K v1, T k2, K v2, T k3, K v3, T k4, K v4) 
- 
newMap
public static <T,K> java.util.Map<T,K> newMap(T k0, K v0, T k1, K v1, T k2, K v2, T k3, K v3, T k4, K v4, T k5, K v5) 
- 
newMap
public static <T,K> java.util.Map<T,K> newMap(T[] k, K[] v)Builds a map from two arrays.- Parameters:
 k- Array of keys.v- Array of values.- Returns:
 - a map based on the two arrays.
 
 
- 
newSet
public static <T> java.util.Set<T> newSet(java.util.Collection<T> c)
Creates a set that can be modified from theCollectionprovided. 
- 
newSet
public static <T> java.util.Set<T> newSet(T... arr)
Creates a set that can be modified from the arguments. 
- 
newReadOnlySet
public static <T> java.util.Set<T> newReadOnlySet(T... arr)
Creates an unmodifiable set from a variable number arguments. 
- 
newReadOnlySet
public static <T> java.util.Set<T> newReadOnlySet(java.util.Collection<T> c)
Creates an unmodifiable set from aCollection. 
- 
union
public static <T> java.util.Set<T> union(java.util.Collection<T> c1, java.util.Collection<T> c2)Returns the union of twoCollections as an unmodifiable set. 
- 
intersection
public static <T> java.util.Set<T> intersection(java.util.Collection<T> c1, java.util.Collection<T> c2)Returns the intersection of twoCollections as an unmodifiable set. 
- 
newSortedList
public static <T extends java.lang.Object & java.lang.Comparable<? super T>> java.util.List<T> newSortedList(java.util.Collection<? extends T> col)
Create a modifiable sortedListbased on theCollectionprovided. 
- 
newList
public static <T> java.util.List<T> newList(java.util.Collection<? extends T> c)
Create a modifiable list from theCollectionprovided. The return value is backed by anArrayList. 
- 
newList
public static <T> java.util.List<T> newList(T... arr)
Create a modifiable list from the arguments. The return value is backed by anArrayList. 
- 
newReadOnlyList
public static <T> java.util.List<T> newReadOnlyList(java.util.List<? extends T> list)
Create an unmodifiableListbased on theListpassed in checks for null and returns an empty list if null is passed in. This one insures that the order is maintained between lists. 
- 
newReadOnlyList
public static <T> java.util.List<T> newReadOnlyList(T... obj)
Creates an unmodifiableListfrom a variable number arguments. 
- 
newReadOnlyList
public static <T> java.util.List<T> newReadOnlyList(java.util.Collection<? extends T> c)
Creates an unmodifiableListfrom a collection. 
- 
asReadOnlyList
public static <T> java.util.List<T> asReadOnlyList(java.util.List<T> list)
Returns a read-only list. The list is backed by the original so no copy is made.- Type Parameters:
 T- The type of the list- Parameters:
 list- The list or null.- Returns:
 - A read-only proxy on the original list.
 
 
- 
forceCompare
public static <T> int forceCompare(java.lang.Object o1, java.lang.Object o2)Forces the compare of two comparable objects and removes any warnings generated by the compiler.- Returns:
 Comparablethe integer value of o1.compareTo(o2).
 
- 
hashCode
public static int hashCode(java.lang.Object o)
hashCode function that properly handles arrays, collections, maps, collections of arrays, and maps of arrays.- Parameters:
 o- The object. May be null.- Returns:
 - the hashCode
 
 
- 
equals
public static boolean equals(java.lang.Object o1, java.lang.Object o2)Equality function that properly handles arrays, lists, maps, lists of arrays, and maps of arrays.NOTE: For Sets, this relies on the equals method of the Set to do the right thing. This is a reasonable assumption since, in order for Sets to behave properly as Sets, their values must already have a proper implementation of equals. (Or they must be specialized Sets that define a custom comparator that knows how to do the right thing). The same holds true for Map keys. Map values, on the other hand, are compared (so Map values can be arrays).
- Parameters:
 o1- The first object. May be null.o2- The second object. May be null.- Returns:
 - true if the two objects are equal.
 
 
- 
equals
public static boolean equals(java.lang.Object o1, java.lang.Object o2, boolean equalsIgnoreCase)Equality function that properly handles arrays, lists, maps, lists of arrays, and maps of arrays.NOTE: For Sets, this relies on the equals method of the Set to do the right thing. This is a reasonable assumption since, in order for Sets to behave properly as Sets, their values must already have a proper implementation of equals. (Or they must be specialized Sets that define a custom comparator that knows how to do the right thing). The same holds true for Map keys. Map values, on the other hand, are compared (so Map values can be arrays).
- Parameters:
 o1- The first object. May be null.o2- The second object. May be null.equalsIgnoreCase- if true the String and Character comparison is case-ignore- Returns:
 - true if the two objects are equal.
 - Since:
 - 1.5
 
 
 - 
 
 -