Java Collections Class
Jakob Jenkov |
The Java Collections class, java.util.Collections
, contains a long list of
utility methods for working with collections in Java. In this Collections class tutorial I will go
through some of the most useful of these methods.
addAll()
The Java Collections
addAll()
method can add a variable number of elements to a
Collection
(typically either a List or a Set .
Here is a java code example of calling the Collections
addAll()
method:
List<String> list = new ArrayList<>(); Collections.addAll(list, "element 1", "element 2", "element 3");
binarySearch()
The Collections
binarySearch()
method can search a Java List
for an element using a binary search algorithm. The List
must be sorted in ascending order before
you search it using binarySearch()
. See the tutorial about sorting Java Lists
for more information about how to sort a List
in ascending order.
Here is an example of searching a List
using the Collections
binarySearch()
method:
List<String> list = new ArrayList<>(); list.add("one"); list.add("two"); list.add("three"); list.add("four"); list.add("five"); Collections.sort(list); int searchIndex = Collections.binarySearch(list, "four"); System.out.println(searchIndex);
copy()
The Collections
copy()
method can copy all elements of a List
into
another List
. Here is a Java example of calling the Collections
copy()
method:
List<String> source = new ArrayList<>(); Collections.addAll(source, "e1", "e2", "e3"); List<String> destination = new ArrayList<>(); Collections.copy(destination, source);
reverse()
The Collections
reverse()
method can reverse the elements in a Java List
.
Here is an example of reversing the elements of a List
:
List>String< list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("three"); Collections.reverse(list);
After executing the above code, the sequence of the elements in the List
will be
three
, two
, one
.
shuffle()
The Collections
shuffle()
method can shuffle the elements of a List
.
Here is an example of shuffling a list with the Collections
shuffle()
method:
List>String< list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("three"); Collections.shuffle(list);
sort()
The Collections
sort()
method can sort a Java List
. I have covered
sorting of List
s in my sort Java List tutorial. Here is an example
of sorting a Java List
using Collections
sort()
method:
List>String< list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("three"); list.add("four"); Collections.sort(list);
After running this code the order of the elements in the List
will be
four
, one
, three
, four
, as the String
elements will be sorted alphabetically.
copy()
The Java Collections
copy()
method can copy one List
into another.
You provide the source and destination List
instances as parameters to the copy()
method. Here is how copying a List
with Collections
copy()
:
List source = new ArrayList(); source.add("one"); source.add("two"); source.add("three"); List destination = new ArrayList(); Collections.copy(destination, source);
min()
The Collections
min()
method can find the minimum element in a List
according to the natural ordering of the elements (see my Java List sorting tutorial).
Here is an example of finding the minimum element in a Java List
using Collections
min()
method:
List source = new ArrayList(); source.add("1"); source.add("2"); source.add("3"); String min = (String) Collections.min(source);
After running the code above, the min
variable will contain the String value 1
.
max()
The Collections
max()
method can find the maximum element in a List
according to the natural order of the elements (see my Java List sorting tutorial).
Here is an example of finding the maximum element in a Java List
:
List source = new ArrayList(); source.add("1"); source.add("2"); source.add("3"); String max = (String) Collections.max(source);
After running the code above, the max
variable will contain the String value 3
.
replaceAll()
The Java Collections
replaceAll()
method can replace all occurrences of one element
with another element. You pass the element to replace and the element to replace it with as parameters to
the replaceAll()
method. The Collections
replaceAll()
method returns
true
if any elements were replaced, and false
if not.
Here is an example of replacing all occurrences of one element with another in a Java List
:
List source = new ArrayList(); source.add("A"); source.add("B"); source.add("A"); boolean replacedAny = Collections.replaceAll(source, "A", "C");
After executing this example, the source
List
will contain the elements
C
, B
and C
. The replacedAny
variable will contain
the value true
because at least one element was replaced in the List
.
The Collections
replaceAll()
method uses the equals()
method of each
element to determine if the element is equal to the element to replace or not. I have a written a few more
details about how the equals()
method works in my section about the
Java equals() method.
unmodifiableSet()
The unmodifiableSet()
method in the Java Collections
class can create an immutable
(unmodifiable) Set
from a normal Java Set . Here is a Java example of creating
an immutable Set
from a normal Set
:
Set normalSet = new HashSet(); Set immutableSet = Collections.unmodifiableSet(normalSet);
Tweet | |
Jakob Jenkov |