public abstract class CollectionFactory
extends java.lang.Object
The goal of this class is to avoid runtime dependencies on a specific Java version, while nevertheless using the best collection implementation that is available at runtime.
Modifier and Type | Field and Description |
---|---|
private static java.util.Set<java.lang.Class> |
approximableCollectionTypes |
private static java.util.Set<java.lang.Class> |
approximableMapTypes |
private static java.lang.Class |
navigableMapClass |
private static java.lang.Class |
navigableSetClass |
Constructor and Description |
---|
CollectionFactory() |
Modifier and Type | Method and Description |
---|---|
static java.util.Collection |
createApproximateCollection(java.lang.Object collection,
int initialCapacity)
Create the most approximate collection for the given collection.
|
static java.util.Map |
createApproximateMap(java.lang.Object map,
int initialCapacity)
Create the most approximate map for the given map.
|
static java.util.Collection |
createCollection(java.lang.Class<?> collectionType,
int initialCapacity)
Create the most appropriate collection for the given collection type.
|
static java.util.Map |
createMap(java.lang.Class<?> mapType,
int initialCapacity)
Create the most approximate map for the given map.
|
static boolean |
isApproximableCollectionType(java.lang.Class<?> collectionType)
Determine whether the given collection type is an approximable type,
i.e.
|
static boolean |
isApproximableMapType(java.lang.Class<?> mapType)
Determine whether the given map type is an approximable type,
i.e.
|
private static java.lang.Class navigableSetClass
private static java.lang.Class navigableMapClass
private static final java.util.Set<java.lang.Class> approximableCollectionTypes
private static final java.util.Set<java.lang.Class> approximableMapTypes
public static boolean isApproximableCollectionType(java.lang.Class<?> collectionType)
createApproximateCollection(java.lang.Object, int)
can approximate.collectionType
- the collection type to checktrue
if the type is approximable,
false
if it is notpublic static java.util.Collection createApproximateCollection(java.lang.Object collection, int initialCapacity)
Creates an ArrayList, TreeSet or linked Set for a List, SortedSet or Set, respectively.
collection
- the original Collection objectinitialCapacity
- the initial capacityArrayList
,
TreeSet
,
LinkedHashSet
public static java.util.Collection createCollection(java.lang.Class<?> collectionType, int initialCapacity)
Creates an ArrayList, TreeSet or linked Set for a List, SortedSet or Set, respectively.
collectionType
- the desired type of the target CollectioninitialCapacity
- the initial capacityArrayList
,
TreeSet
,
LinkedHashSet
public static boolean isApproximableMapType(java.lang.Class<?> mapType)
createApproximateMap(java.lang.Object, int)
can approximate.mapType
- the map type to checktrue
if the type is approximable,
false
if it is notpublic static java.util.Map createApproximateMap(java.lang.Object map, int initialCapacity)
Creates a TreeMap or linked Map for a SortedMap or Map, respectively.
map
- the original Map objectinitialCapacity
- the initial capacityTreeMap
,
LinkedHashMap
public static java.util.Map createMap(java.lang.Class<?> mapType, int initialCapacity)
Creates a TreeMap or linked Map for a SortedMap or Map, respectively.
mapType
- the desired type of the target MapinitialCapacity
- the initial capacityTreeMap
,
LinkedHashMap