public class CollectionUtils extends Object
Modifier and Type | Method and Description |
---|---|
static <T> void |
addAll(Collection<T> collection,
Iterable<? extends T> items)
Add all the items from an iterable to a collection.
|
static double[] |
asDoubleArray(Collection<Double> coll) |
static int[] |
asIntArray(Collection<Integer> coll) |
static List<Double> |
asList(double[] a) |
static List<Integer> |
asList(int[] a) |
static <T> Set<T> |
asSet(T[] o)
Returns a new Set containing all the objects in the specified array.
|
static <T extends Comparable<T>> |
compareLists(List<T> list1,
List<T> list2)
Provides a consistent ordering over lists.
|
static <T> boolean |
containsAny(Collection<T> collection,
Collection<T> toCheck)
if any item in toCheck is present in collection
|
static <T> boolean |
containsObject(Collection<T> c,
T o)
Checks whether a Collection contains a specified Object.
|
static <T> Collection<T> |
diff(Collection<T> list1,
Collection<T> list2)
Returns all objects in list1 that are not in list2
|
static <T> Set<T> |
diffAsSet(Collection<T> list1,
Collection<T> list2)
Returns all objects in list1 that are not in list2
|
static <T> List<T> |
filterAsList(Collection<? extends T> original,
java.util.function.Predicate<? super T> f)
Filters the objects in the collection according to the given Filter and returns a list
|
static <T> List<T> |
flatten(Collection<List<T>> nestedList)
combines all the lists in a collection to a single list
|
static <T,V> List<V> |
getAll(Map<T,V> map,
Collection<T> indices)
Get all values corresponding to the indices (if they exist in the map).
|
static <T> int |
getIndex(List<T> l,
T o)
Returns the index of the first occurrence in the list of the specified
object, using object identity (==) not equality as the criterion for object
presence.
|
static <T> int |
getIndex(List<T> l,
T o,
int fromIndex)
Returns the index of the first occurrence after the startIndex (exclusive)
in the list of the specified object, using object equals function.
|
static <C extends Comparable<C>> |
getListComparator() |
static <K,V> Map<K,V> |
getMapFromString(String s,
Class<K> keyClass,
Class<V> valueClass,
MapFactory<K,V> mapFactory) |
static <T> List<List<T>> |
getNGrams(List<T> items,
int minSize,
int maxSize)
Get all sub-lists of the given list of the given sizes.
|
static <T> List<List<T>> |
getPrefixesAndSuffixes(List<T> items,
int minSize,
int maxSize,
T paddingSymbol,
boolean includePrefixes,
boolean includeSuffixes)
Get all prefix/suffix combinations from a list.
|
static <T> Set<T> |
intersection(Set<T> set1,
Set<T> set2) |
static <T> boolean |
isSubList(List<T> l1,
List<? super T> l)
Returns true iff l1 is a sublist of l (i.e., every member of l1 is in l,
and for every e1 < e2 in l1, there is an e1 < e2 occurrence in l).
|
static <T> void |
loadCollection(File file,
Class<T> itemClass,
Collection<T> collection)
Adds the items from the file to the collection.
|
static <T> Collection<T> |
loadCollection(File file,
Class<T> c,
CollectionFactory<T> cf) |
static <T> void |
loadCollection(String fileName,
Class<T> itemClass,
Collection<T> collection)
Adds the items from the file to the collection.
|
static <T> Collection<T> |
loadCollection(String filename,
Class<T> c,
CollectionFactory<T> cf) |
static <T> List<T> |
makeList(T... items)
Returns a new List containing the given objects.
|
static <T extends Comparable<? super T>> |
maxIndex(List<T> list) |
static <T,M> List<T> |
mergeList(List<? extends T> list,
Collection<M> matched,
java.util.function.Function<M,Interval<Integer>> toIntervalFunc,
java.util.function.Function<List<? extends T>,T> aggregator) |
static <T> List<T> |
mergeList(List<? extends T> list,
List<? extends HasInterval<Integer>> matched,
java.util.function.Function<List<? extends T>,T> aggregator) |
static <T> List<T> |
mergeListWithSortedMatched(List<? extends T> list,
List<? extends HasInterval<Integer>> matched,
java.util.function.Function<List<? extends T>,T> aggregator) |
static <T> List<T> |
mergeListWithSortedMatchedPreAggregated(List<? extends T> list,
List<? extends T> matched,
java.util.function.Function<T,Interval<Integer>> toIntervalFunc) |
static <T> T |
mode(Collection<T> values)
Returns the mode in the Collection.
|
static <T> Set<T> |
modes(Collection<T> values)
Returns a list of all modes in the Collection.
|
static <T> List<Collection<T>> |
partitionIntoFolds(List<T> values,
int numFolds)
Split a list into numFolds (roughly) equally sized folds.
|
static <T> boolean |
removeObject(List<T> l,
T o)
Removes the first occurrence in the list of the specified object, using
object identity (==) not equality as the criterion for object presence.
|
static <E> E |
sample(List<E> l,
Random r) |
static <E> Collection<E> |
sampleWithoutReplacement(Collection<E> c,
int n)
Samples without replacement from a collection.
|
static <E> Collection<E> |
sampleWithoutReplacement(Collection<E> c,
int n,
Random r)
Samples without replacement from a collection, using your own
Random number generator. |
static <E> Collection<E> |
sampleWithReplacement(Collection<E> c,
int n)
Samples with replacement from a collection
|
static <E> Collection<E> |
sampleWithReplacement(Collection<E> c,
int n,
Random r)
Samples with replacement from a collection, using your own
Random
number generator |
static <T extends Comparable<T>> |
sorted(Iterable<T> items)
Return the items of an Iterable as a sorted list.
|
static <T> List<T> |
sorted(Iterable<T> items,
Comparator<T> comparator)
Return the items of an Iterable as a sorted list.
|
static <T> List<T> |
toList(Iterable<T> items)
Create a list out of the items in the Iterable.
|
static <T> Set<T> |
toSet(Iterable<T> items)
Create a set out of the items in the Iterable.
|
static <K,V> String |
toVerticalString(Map<K,V> m) |
static <T> Collection<Pair<Collection<T>,Collection<T>>> |
trainTestFoldsForCV(List<T> values,
int numFolds)
Split a list into train, test pairs for use in k-fold crossvalidation.
|
static <T1,T2> List<T2> |
transformAsList(Collection<? extends T1> original,
java.util.function.Function<T1,? extends T2> f)
Transforms the keyset of collection according to the given Function and returns a list
|
static <T1,T2> Set<T2> |
transformAsSet(Collection<? extends T1> original,
java.util.function.Function<T1,? extends T2> f)
Transforms the keyset of collection according to the given Function and returns a set of the keys
|
static <T> Collection<T> |
union(Collection<T> set1,
Collection<T> set2) |
static <T> Set<T> |
unionAsSet(Collection<T>... sets) |
static <T> Set<T> |
unionAsSet(Collection<T> set1,
Collection<T> set2) |
static <ObjType,Hashable> |
uniqueNonhashableObjects(Collection<ObjType> objects,
java.util.function.Function<ObjType,Hashable> customHasher)
Makes it possible to uniquify a collection of objects which are normally
non-hashable.
|
public static int[] asIntArray(Collection<Integer> coll)
public static double[] asDoubleArray(Collection<Double> coll)
public static <T> List<T> makeList(T... items)
public static <T> Set<T> asSet(T[] o)
public static <T> Collection<T> union(Collection<T> set1, Collection<T> set2)
public static <T> Set<T> unionAsSet(Collection<T> set1, Collection<T> set2)
public static <T> Set<T> unionAsSet(Collection<T>... sets)
public static <T> Collection<T> diff(Collection<T> list1, Collection<T> list2)
T
- Type of items in the collectionlist1
- First collectionlist2
- Second collectionpublic static <T> Set<T> diffAsSet(Collection<T> list1, Collection<T> list2)
T
- Type of items in the collectionlist1
- First collectionlist2
- Second collectionpublic static <T> Collection<T> loadCollection(String filename, Class<T> c, CollectionFactory<T> cf) throws Exception
filename
- the path to the file to load the List fromc
- the Class to instantiate each member of the List. Must have a
String constructor.Exception
public static <T> Collection<T> loadCollection(File file, Class<T> c, CollectionFactory<T> cf) throws Exception
file
- the file to load the List fromc
- the Class to instantiate each member of the List. Must have a
String constructor.Exception
public static <T> void loadCollection(String fileName, Class<T> itemClass, Collection<T> collection) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException, IOException
T
- The type of the items.fileName
- The name of the file from which items should be loaded.itemClass
- The class of the items (must have a constructor that accepts a
String).collection
- The collection to which items should be added.NoSuchMethodException
InstantiationException
IllegalAccessException
InvocationTargetException
IOException
public static <T> void loadCollection(File file, Class<T> itemClass, Collection<T> collection) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException, IOException
T
- The type of the items.file
- The file from which items should be loaded.itemClass
- The class of the items (must have a constructor that accepts a
String).collection
- The collection to which items should be added.NoSuchMethodException
InstantiationException
IllegalAccessException
InvocationTargetException
IOException
public static <K,V> Map<K,V> getMapFromString(String s, Class<K> keyClass, Class<V> valueClass, MapFactory<K,V> mapFactory) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException
public static <T> boolean containsObject(Collection<T> c, T o)
public static <T> boolean removeObject(List<T> l, T o)
l
- The List
from which to remove the objecto
- The object to be removed.public static <T> int getIndex(List<T> l, T o)
l
- The List
to find the object in.o
- The sought-after object.public static <T> int getIndex(List<T> l, T o, int fromIndex)
l
- The List
to find the object in.o
- The sought-after object.fromIndex
- The start indexpublic static <E> Collection<E> sampleWithoutReplacement(Collection<E> c, int n)
c
- The collection to be sampled fromn
- The number of samples to takepublic static <E> Collection<E> sampleWithoutReplacement(Collection<E> c, int n, Random r)
Random
number generator.c
- The collection to be sampled fromn
- The number of samples to taker
- the random number generatorpublic static <E> Collection<E> sampleWithReplacement(Collection<E> c, int n)
c
- The collection to be sampled fromn
- The number of samples to takepublic static <E> Collection<E> sampleWithReplacement(Collection<E> c, int n, Random r)
Random
number generatorc
- The collection to be sampled fromn
- The number of samples to taker
- the random number generatorpublic static <T> boolean isSubList(List<T> l1, List<? super T> l)
public static <T extends Comparable<T>> int compareLists(List<T> list1, List<T> list2)
public static <C extends Comparable<C>> Comparator<List<C>> getListComparator()
public static <T extends Comparable<T>> List<T> sorted(Iterable<T> items)
T
- The type of items in the Iterable.items
- The collection to be sorted.public static <T> List<T> sorted(Iterable<T> items, Comparator<T> comparator)
T
- The type of items in the Iterable.items
- The collection to be sorted.public static <T> List<T> toList(Iterable<T> items)
T
- The type of items in the Iterable.items
- The items to be made into a list.public static <T> Set<T> toSet(Iterable<T> items)
T
- The type of items in the Iterable.items
- The items to be made into a set.public static <T> void addAll(Collection<T> collection, Iterable<? extends T> items)
T
- The type of items in the iterable and the collectioncollection
- The collection to which the items should be added.items
- The items to add to the collection.public static <T> List<List<T>> getNGrams(List<T> items, int minSize, int maxSize)
List<String> items = Arrays.asList("a", "b", "c", "d"); System.out.println(CollectionUtils.getNGrams(items, 1, 2));would print out:
[[a], [a, b], [b], [b, c], [c], [c, d], [d]]
T
- The type of items contained in the list.items
- The list of items.minSize
- The minimum size of an ngram.maxSize
- The maximum size of an ngram.public static <T> List<List<T>> getPrefixesAndSuffixes(List<T> items, int minSize, int maxSize, T paddingSymbol, boolean includePrefixes, boolean includeSuffixes)
List<String> items = Arrays.asList("a", "b", "c", "d"); System.out.println(CollectionUtils.getPrefixesAndSuffixes(items, 1, 2, null, true, true));would print out:
[[d], [a], [a, d], [d, c], [a, b], [a, b, c, d]]and
List<String> items2 = Arrays.asList("a"); System.out.println(CollectionUtils.getPrefixesAndSuffixes(items2, 1, 2, null, true, true));would print:
[[a], [a], [a, a], [a, null], [a, null], [a, null, a, null]]
T
- The type of items contained in the list.items
- The list of items.minSize
- The minimum length of a prefix/suffix span (should be at least 1)maxSize
- The maximum length of a prefix/suffix spanpaddingSymbol
- Symbol to be included if we run out of bounds (e.g. if items has
size 3 and we try to extract a span of length 4).includePrefixes
- whether to extract prefixesincludeSuffixes
- whether to extract suffixespublic static <T,M> List<T> mergeList(List<? extends T> list, Collection<M> matched, java.util.function.Function<M,Interval<Integer>> toIntervalFunc, java.util.function.Function<List<? extends T>,T> aggregator)
public static <T> List<T> mergeList(List<? extends T> list, List<? extends HasInterval<Integer>> matched, java.util.function.Function<List<? extends T>,T> aggregator)
public static <T> List<T> mergeListWithSortedMatched(List<? extends T> list, List<? extends HasInterval<Integer>> matched, java.util.function.Function<List<? extends T>,T> aggregator)
public static <T> List<T> mergeListWithSortedMatchedPreAggregated(List<? extends T> list, List<? extends T> matched, java.util.function.Function<T,Interval<Integer>> toIntervalFunc)
public static <T> List<T> flatten(Collection<List<T>> nestedList)
public static <ObjType,Hashable> Collection<ObjType> uniqueNonhashableObjects(Collection<ObjType> objects, java.util.function.Function<ObjType,Hashable> customHasher)
public static <T> boolean containsAny(Collection<T> collection, Collection<T> toCheck)
collection
- toCheck
- public static <T> List<Collection<T>> partitionIntoFolds(List<T> values, int numFolds)
public static <T> Collection<Pair<Collection<T>,Collection<T>>> trainTestFoldsForCV(List<T> values, int numFolds)
public static <T> Set<T> modes(Collection<T> values)
public static <T> T mode(Collection<T> values)
public static <T1,T2> Set<T2> transformAsSet(Collection<? extends T1> original, java.util.function.Function<T1,? extends T2> f)
public static <T1,T2> List<T2> transformAsList(Collection<? extends T1> original, java.util.function.Function<T1,? extends T2> f)
public static <T> List<T> filterAsList(Collection<? extends T> original, java.util.function.Predicate<? super T> f)
public static <T,V> List<V> getAll(Map<T,V> map, Collection<T> indices)
map
- Any map from T to Vindices
- A collection of indices of type Tpublic static <T extends Comparable<? super T>> int maxIndex(List<T> list)