public class Collections extends Object
Collections
contains static methods which operate on
Collection
classes.Modifier and Type | Field and Description |
---|---|
static List |
EMPTY_LIST
An empty immutable instance of
List . |
static Map |
EMPTY_MAP
An empty immutable instance of
Map . |
static Set |
EMPTY_SET
An empty immutable instance of
Set . |
Modifier and Type | Method and Description |
---|---|
static <T> boolean |
addAll(Collection<? super T> c,
T... a)
Adds all the specified elements to the specified collection.
|
static <T> Queue<T> |
asLifoQueue(Deque<T> deque)
Answers a LIFO Queue as a view of a Deque.
|
static <T> int |
binarySearch(List<? extends Comparable<? super T>> list,
T object)
Performs a binary search for the specified element in the specified
sorted list.
|
static <T> int |
binarySearch(List<? extends T> list,
T object,
Comparator<? super T> comparator)
Performs a binary search for the specified element in the specified
sorted list using the specified comparator.
|
static <E> Collection<E> |
checkedCollection(Collection<E> c,
Class<E> type)
Returns a dynamically typesafe view of the specified collection.
|
static <T> void |
copy(List<? super T> destination,
List<? extends T> source)
Copies the elements from the source list to the destination list.
|
static boolean |
disjoint(Collection<?> c1,
Collection<?> c2)
Returns whether the specified collections have no elements in common.
|
static <T> List<T> |
emptyList()
Returns a type-safe empty, immutable
List . |
static <K,V> Map<K,V> |
emptyMap()
Returns a type-safe empty, immutable
Map . |
static <T> Set<T> |
emptySet()
Returns a type-safe empty, immutable
Set . |
static <T> Enumeration<T> |
enumeration(Collection<T> collection)
Returns an
Enumeration on the specified collection. |
static <T> void |
fill(List<? super T> list,
T object)
Fills the specified list with the specified element.
|
static int |
frequency(Collection<?> c,
Object o)
Returns the number of elements in the
Collection that match the
Object passed. |
static int |
indexOfSubList(List<?> list,
List<?> sublist)
Searches the
list for sublist and returns the beginning
index of the first occurrence. |
static int |
lastIndexOfSubList(List<?> list,
List<?> sublist)
Searches the
list for sublist and returns the beginning
index of the last occurrence. |
static <T> ArrayList<T> |
list(Enumeration<T> enumeration)
Returns an
ArrayList with all the elements in the enumeration . |
static <T extends Object & Comparable<? super T>> |
max(Collection<? extends T> collection)
Searches the specified collection for the maximum element.
|
static <T> T |
max(Collection<? extends T> collection,
Comparator<? super T> comparator)
Searches the specified collection for the maximum element using the
specified comparator.
|
static <T extends Object & Comparable<? super T>> |
min(Collection<? extends T> collection)
Searches the specified collection for the minimum element.
|
static <T> T |
min(Collection<? extends T> collection,
Comparator<? super T> comparator)
Searches the specified collection for the minimum element using the
specified comparator.
|
static <T> List<T> |
nCopies(int length,
T object)
Returns a list containing the specified number of the specified element.
|
static <E> Set<E> |
newSetFromMap(Map<E,Boolean> map)
Answers a set backed by a map.
|
static <T> boolean |
replaceAll(List<T> list,
T obj,
T obj2)
Replaces all occurrences of Object
obj in list with
newObj . |
static void |
reverse(List<?> list)
Modifies the specified
List by reversing the order of the
elements. |
static <T> Comparator<T> |
reverseOrder()
A comparator which reverses the natural order of the elements.
|
static <T> Comparator<T> |
reverseOrder(Comparator<T> c)
Returns a
Comparator that reverses the order of the
Comparator passed. |
static void |
rotate(List<?> lst,
int dist)
Rotates the elements in
list by the distance dist |
static void |
shuffle(List<?> list)
Moves every element of the list to a random new position in the list.
|
static void |
shuffle(List<?> list,
Random random)
Moves every element of the list to a random new position in the list
using the specified random number generator.
|
static <E> Set<E> |
singleton(E object)
Returns a set containing the specified element.
|
static <E> List<E> |
singletonList(E object)
Returns a list containing the specified element.
|
static <K,V> Map<K,V> |
singletonMap(K key,
V value)
Returns a Map containing the specified key and value.
|
static <T extends Comparable<? super T>> |
sort(List<T> list)
Sorts the specified list in ascending natural order.
|
static <T> void |
sort(List<T> list,
Comparator<? super T> comparator)
Sorts the specified list using the specified comparator.
|
static void |
swap(List<?> list,
int index1,
int index2)
Swaps the elements of list
list at indices index1 and
index2 . |
static <T> Collection<T> |
synchronizedCollection(Collection<T> collection)
Returns a wrapper on the specified collection which synchronizes all
access to the collection.
|
static <T> List<T> |
synchronizedList(List<T> list)
Returns a wrapper on the specified List which synchronizes all access to
the List.
|
static <K,V> Map<K,V> |
synchronizedMap(Map<K,V> map)
Returns a wrapper on the specified map which synchronizes all access to
the map.
|
static <E> Set<E> |
synchronizedSet(Set<E> set)
Returns a wrapper on the specified set which synchronizes all access to
the set.
|
static <K,V> SortedMap<K,V> |
synchronizedSortedMap(SortedMap<K,V> map)
Returns a wrapper on the specified sorted map which synchronizes all
access to the sorted map.
|
static <E> SortedSet<E> |
synchronizedSortedSet(SortedSet<E> set)
Returns a wrapper on the specified sorted set which synchronizes all
access to the sorted set.
|
static <E> Collection<E> |
unmodifiableCollection(Collection<? extends E> collection)
Returns a wrapper on the specified collection which throws an
UnsupportedOperationException whenever an attempt is made to
modify the collection. |
static <E> List<E> |
unmodifiableList(List<? extends E> list)
Returns a wrapper on the specified list which throws an
UnsupportedOperationException whenever an attempt is made to
modify the list. |
static <K,V> Map<K,V> |
unmodifiableMap(Map<? extends K,? extends V> map)
Returns a wrapper on the specified map which throws an
UnsupportedOperationException whenever an attempt is made to
modify the map. |
static <E> Set<E> |
unmodifiableSet(Set<? extends E> set)
Returns a wrapper on the specified set which throws an
UnsupportedOperationException whenever an attempt is made to
modify the set. |
static <K,V> SortedMap<K,V> |
unmodifiableSortedMap(SortedMap<K,? extends V> map)
Returns a wrapper on the specified sorted map which throws an
UnsupportedOperationException whenever an attempt is made to
modify the sorted map. |
static <E> SortedSet<E> |
unmodifiableSortedSet(SortedSet<E> set)
Returns a wrapper on the specified sorted set which throws an
UnsupportedOperationException whenever an attempt is made to
modify the sorted set. |
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T object)
list
- the sorted list to search.object
- the element to find.-index - 1
where the element would be insertedClassCastException
- if an element in the List or the search element does not
implement Comparable, or cannot be compared to each other.public static <T> int binarySearch(List<? extends T> list, T object, Comparator<? super T> comparator)
T
- The element typelist
- the sorted List to search.object
- the element to find.comparator
- the comparator. If the comparator is null
then the
search uses the objects' natural ordering.-index - 1
where the element would be inserted.ClassCastException
- when an element in the list and the searched element cannot
be compared to each other using the comparator.public static <T> void copy(List<? super T> destination, List<? extends T> source)
index >= source.size()
will be unchanged.destination
- the list whose elements are set from the source list.source
- the list with the elements to be copied into the destination.IndexOutOfBoundsException
- when the destination list is smaller than the source list.UnsupportedOperationException
- when replacing an element in the destination list is not
supported.public static <T> Enumeration<T> enumeration(Collection<T> collection)
Enumeration
on the specified collection.collection
- the collection to enumerate.public static <T> void fill(List<? super T> list, T object)
list
- the list to fill.object
- the element to fill the list with.UnsupportedOperationException
- when replacing an element in the List is not supported.public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> collection)
collection
- the collection to search.ClassCastException
- when an element in the collection does not implement
Comparable
or elements cannot be compared to each
other.public static <T> T max(Collection<? extends T> collection, Comparator<? super T> comparator)
collection
- the collection to search.comparator
- the comparator.ClassCastException
- when elements in the collection cannot be compared to each
other using the Comparator
.public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> collection)
collection
- the collection to search.ClassCastException
- when an element in the collection does not implement
Comparable
or elements cannot be compared to each
other.public static <T> T min(Collection<? extends T> collection, Comparator<? super T> comparator)
collection
- the collection to search.comparator
- the comparator.ClassCastException
- when elements in the collection cannot be compared to each
other using the Comparator
.public static <T> List<T> nCopies(int length, T object)
length
- the size of the returned list.object
- the element to be added length
times to a list.length
copies of the element.IllegalArgumentException
- when length < 0
.public static void reverse(List<?> list)
List
by reversing the order of the
elements.list
- the list to reverse.UnsupportedOperationException
- when replacing an element in the List is not supported.public static <T> Comparator<T> reverseOrder()
Comparator
that's returned is Serializable
.Comparator
instance.Comparator
,
Comparable
,
Serializable
public static <T> Comparator<T> reverseOrder(Comparator<T> c)
Comparator
that reverses the order of the
Comparator
passed. If the Comparator
passed is
null
, then this method is equivalent to reverseOrder()
.
The Comparator
that's returned is Serializable
if the
Comparator
passed is serializable or null
.
c
- the Comparator
to reverse or null
.Comparator
instance.Comparator
public static void shuffle(List<?> list)
list
- the List to shuffle.UnsupportedOperationException
- when replacing an element in the List is not supported.public static void shuffle(List<?> list, Random random)
list
- the list to shuffle.random
- the random number generator.UnsupportedOperationException
- when replacing an element in the list is not supported.public static <E> Set<E> singleton(E object)
object
- the element.public static <E> List<E> singletonList(E object)
object
- the element.public static <K,V> Map<K,V> singletonMap(K key, V value)
key
- the key.value
- the value.public static <T extends Comparable<? super T>> void sort(List<T> list)
list
- the list to be sorted.ClassCastException
- when an element in the List does not implement Comparable or
elements cannot be compared to each other.public static <T> void sort(List<T> list, Comparator<? super T> comparator)
list
- the list to be sorted.comparator
- the comparator.ClassCastException
- when elements in the list cannot be compared to each other
using the comparator.public static void swap(List<?> list, int index1, int index2)
list
at indices index1
and
index2
.list
- the list to manipulate.index1
- position of the first element to swap with the element in
index2.index2
- position of the other element.IndexOutOfBoundsException
- if index1 or index2 is out of range of this list.public static <T> boolean replaceAll(List<T> list, T obj, T obj2)
obj
in list
with
newObj
. If the obj
is null
, then all
occurrences of null
are replaced with newObj
.list
- the list to modify.obj
- the object to find and replace occurrences of.obj2
- the object to replace all occurrences of obj
in
list
.obj
has been found in
list
.UnsupportedOperationException
- if the list does not support setting elements.public static void rotate(List<?> lst, int dist)
list
by the distance dist
e.g. for a given list with elements [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], calling rotate(list, 3) or rotate(list, -7) would modify the list to look like this: [8, 9, 0, 1, 2, 3, 4, 5, 6, 7]
lst
- the list whose elements are to be rotated.dist
- is the distance the list is rotated. This can be any valid
integer. Negative values rotate the list backwards.public static int indexOfSubList(List<?> list, List<?> sublist)
list
for sublist
and returns the beginning
index of the first occurrence.
-1 is returned if the sublist
does not exist in list
.
list
- the List to search sublist
in.sublist
- the List to search in list
.sublist
in
list
, or -1.public static int lastIndexOfSubList(List<?> list, List<?> sublist)
list
for sublist
and returns the beginning
index of the last occurrence.
-1 is returned if the sublist
does not exist in list
.
list
- the list to search sublist
in.sublist
- the list to search in list
.sublist
in
list
, or -1.public static <T> ArrayList<T> list(Enumeration<T> enumeration)
ArrayList
with all the elements in the enumeration
. The elements in the returned ArrayList
are in the
same order as in the enumeration
.enumeration
- the source Enumeration
.ArrayList
from enumeration
.public static <T> Collection<T> synchronizedCollection(Collection<T> collection)
collection
- the Collection to wrap in a synchronized collection.public static <T> List<T> synchronizedList(List<T> list)
list
- the List to wrap in a synchronized list.public static <K,V> Map<K,V> synchronizedMap(Map<K,V> map)
map
- the map to wrap in a synchronized map.public static <E> Set<E> synchronizedSet(Set<E> set)
set
- the set to wrap in a synchronized set.public static <K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> map)
map
- the sorted map to wrap in a synchronized sorted map.public static <E> SortedSet<E> synchronizedSortedSet(SortedSet<E> set)
set
- the sorted set to wrap in a synchronized sorted set.public static <E> Collection<E> unmodifiableCollection(Collection<? extends E> collection)
UnsupportedOperationException
whenever an attempt is made to
modify the collection.collection
- the collection to wrap in an unmodifiable collection.public static <E> List<E> unmodifiableList(List<? extends E> list)
UnsupportedOperationException
whenever an attempt is made to
modify the list.list
- the list to wrap in an unmodifiable list.public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> map)
UnsupportedOperationException
whenever an attempt is made to
modify the map.map
- the map to wrap in an unmodifiable map.public static <E> Set<E> unmodifiableSet(Set<? extends E> set)
UnsupportedOperationException
whenever an attempt is made to
modify the set.set
- the set to wrap in an unmodifiable set.public static <K,V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<K,? extends V> map)
UnsupportedOperationException
whenever an attempt is made to
modify the sorted map.map
- the sorted map to wrap in an unmodifiable sorted map.public static <E> SortedSet<E> unmodifiableSortedSet(SortedSet<E> set)
UnsupportedOperationException
whenever an attempt is made to
modify the sorted set.set
- the sorted set to wrap in an unmodifiable sorted set.public static int frequency(Collection<?> c, Object o)
Collection
that match the
Object
passed. If the Object
is null
, then the
number of null
elements is returned.c
- the Collection
to search.o
- the Object
to search for.NullPointerException
- if the Collection
parameter is null
.public static final <T> List<T> emptyList()
List
.List
.EMPTY_LIST
public static <E> Collection<E> checkedCollection(Collection<E> c, Class<E> type)
ClassCastException
. At creation time the types in c
are
not checked for correct type.c
- the collection to be wrapped in a typesafe collection.type
- the type of the elements permitted to insert.public static <T> boolean addAll(Collection<? super T> c, T... a)
c
- the collection the elements are to be inserted into.a
- the elements to insert.UnsupportedOperationException
- when the method is not supported.NullPointerException
- when c
or a
is null
, or a
contains one or more null
elements and c
doesn't support null
elements.IllegalArgumentException
- if at least one of the elements can't be inserted into the
collection.public static boolean disjoint(Collection<?> c1, Collection<?> c2)
c1
- the first collection.c2
- the second collection.true
if the collections have no elements in common,
false
otherwise.NullPointerException
- if one of the collections is null
.public static <E> Set<E> newSetFromMap(Map<E,Boolean> map)
E
- type of elements in setmap
- the backing mapIllegalArgumentException
- if the map is not empty