Collections class in Java is one of the utility classes in Java Collections Framework. The java.util package contains the Collections class in Java. Java Collections class is used with the static methods that operate on the collections or return the collection. All the methods of this class throw the NullPointerException if the collection or object passed to the methods is null.
Collection Class declaration
The syntax of the Collection class declaration is mentioned below:
public class Collections extends Object
Remember: Object is the parent class of all the classes.
Java Collection Class
Collection Framework contains both classes and interfaces. Although both seem the same but there are certain differences between Collection classes and the Collection framework. There are some classes in Java as mentioned below:
1. ArrayList
ArrayList is a class implemented using a list interface, in that provides the functionality of a dynamic array where the size of the array is not fixed.
Syntax:
ArrayList<_type_> var_name = new ArrayList<_type_>();
2. Vector
Vector is a Part of the collection class that implements a dynamic array that can grow or shrink its size as required.
Syntax:
public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess,
Cloneable, Serializable
3. Stack
Stack is a part of Java collection class that models and implements a Stack data structure. It is based on the basic principle of last-in-first-out(LIFO) .
Syntax:
public class Stack<E> extends Vector<E>
4. LinkedList
LinkedList class is an implementation of the LinkedList data structure. It can store the elements that are not stored in contiguous locations and every element is a separate object with a different data part and different address part.
Syntax:
LinkedList name = new LinkedList();
5. HashSet
HashSet is implemented using the Hashtable data structure. It offers constant time performance for the performing operations like add, remove, contains, and size.
Syntax:
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable
6. LinkedHashSet
LinkedHashSet is an ordered version of HashSet that maintains a doubly-linked List across all elements.
Syntax:
public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, Serializable
7. TreeSet
TreeSet class is implementations of the SortedSet interface in Java that uses a Tree for storage. The ordering of the elements is maintained by a set using their natural ordering whether an explicit comparator is provided or not.
Syntax:
TreeSet t = new TreeSet(Collection col);
8. PriorityQueue
The PriorityQueue is based on the priority heap. The elements of the priority queue are ordered according to the natural ordering, or by a Comparator provided at queue construction time, depending on which constructor is used.
Syntax:
public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
9. ArrayDeque
The ArrayDeque class in Java is an implementation of the Deque interface that uses a resizable array to store its elements. The ArrayDeque class provides constant-time performance for inserting and removing elements from both ends.
Syntax:
public class ArrayDeque<E> extends
AbstractCollection<E> implements Deque<E>, Cloneable,Serializable
10. HashMap
HashMap Class is similar to HashTable but the data unsynchronized. It stores the data in (Key, Value) pairs, and you can access them by an index of another type.
Syntax:
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable
11. EnumMap
EnumMap extends AbstractMap and implements the Map interface in Java.
Syntax:
public class EnumMap<K extends Enum<K>,​V> extends
AbstractMap<K,​V> implements Serializable, Cloneable
12. AbstractMap
The AbstractMap class is a part of the Java Collection Framework. It implements the Map interface to provide a structure to it, by doing so it makes the further implementations easier.
Syntax:
public abstract class AbstractMap<K,V> extends Object, implements Map<K,V>
13. TreeMap
A TreeMap is implemented using a Red-Black tree.TreeMap provides an ordered collection of key-value pairs, where the keys are ordered based on their natural order or a custom Comparator passed to the constructor.
SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
Java Collections Class Fields
The collection class contains 3 fields as listed below which can be used to return immutable entities.
- EMPTY_LIST to get an immutable empty List
- EMPTY_SET to get an immutable empty Set
- EMPTY_MAP to get an immutable empty Map
Now let us do discuss methods that are present inside this class so that we can use these inbuilt functionalities later on in our program. Below are the methods have been listed below in a tabular format as shown below as follows:
Methods
|
Description
|
addAll(Collection<? super T> c, T… elements) |
It is used to insert the specified collection elements to the specified collection. |
asLifoQueue​(Deque<T> deque) |
This method returns a view of a Deque as a Last-in-first-out (Lifo) Queue. |
binarySearch(List<? extends Comparable> list, T key) |
This method searches the key using binary search in the specified list. |
binarySearch​(List<? extends T> list, T key, Comparator<? super T> c) |
This method searches the specified list for the specified object using the binary search algorithm. |
checkedCollection​(Collection<E> c, Class<E> type) |
This method returns a dynamically typesafe view of the specified collection. |
checkedList​(List<E> list, Class<E> type) |
This method returns a dynamically typesafe view of the specified list. |
checkedMap​(Map<K,​V> m, Class<K> keyType, Class<V> valueType) |
This method returns a dynamically typesafe view of the specified map. |
checkedNavigableMap​(NavigableMap<K,​V> m, Class<K> keyType, Class<V> valueType) |
This method returns a dynamically typesafe view of the specified navigable map. |
checkedNavigableSet​(NavigableSet<E> s, Class<E> type) |
This method returns a dynamically typesafe view of the specified navigable set. |
checkedQueue​(Queue<E> queue, Class<E> type) |
This method returns a dynamically typesafe view of the specified queue. |
checkedSet​(Set<E> s, Class<E> type) |
This method returns a dynamically typesafe view of the specified set. |
checkedSortedMap​(SortedMap<K,​V> m, Class<K> keyType, Class<V> valueType) |
This method returns a dynamically typesafe view of the specified sorted map. |
checkedSortedSet​(SortedSet<E> s, Class<E> type) |
This method returns a dynamically typesafe view of the specified sorted set. |
copy​(List<? super T> dest, List<? extends T> src) |
This method copies all of the elements from one list into another. |
disjoint​(Collection<?> c1, Collection<?> c2) |
This method returns true if the two specified collections have no elements in common. |
emptyEnumeration() |
This method returns an enumeration that has no elements. |
emptyIterator() |
This method returns an iterator that has no elements. |
emptyList() |
This method returns an empty list (immutable). |
emptyListIterator() |
This method returns a list iterator that has no elements. |
emptyMap() |
This method returns an empty map (immutable). |
emptyNavigableMap() |
This method returns an empty navigable map (immutable). |
emptyNavigableSet() |
This method returns an empty navigable set (immutable). |
emptySet() |
This method returns an empty set (immutable). |
emptySortedMap() |
This method returns an empty sorted map (immutable). |
emptySortedSet() |
This method returns an empty sorted set (immutable). |
enumeration​(Collection<T> c) |
This method returns an enumeration over the specified collection. |
fill​(List<? super T> list, T obj) |
This method replaces all of the elements of the specified list with the specified element. |
frequency​(Collection<?> c, Object o) |
This method returns the number of elements in the specified collection equal to the specified object. |
indexOfSubList​(List<?> source, List<?> target) |
This method returns the starting position of the first occurrence of the specified target list within the specified source list, or -1 if there is no such occurrence. |
lastIndexOfSubList​(List<?> source, List<?> target) |
This method returns the starting position of the last occurrence of the specified target list within the specified source list, or -1 if there is no such occurrence. |
list​(Enumeration<T> e) |
This method returns an array list containing the elements returned by the specified enumeration in the order they are returned by the enumeration. |
max​(Collection<? extends T> coll) |
This method returns the maximum element of the given collection, according to the natural ordering of its elements. |
max​(Collection<? extends T> coll, Comparator<? super T> comp) |
This method returns the maximum element of the given collection, according to the order induced by the specified comparator. |
min​(Collection<? extends T> coll) |
This method returns the minimum element of the given collection, according to the natural ordering of its elements. |
min​(Collection<? extends T> coll, Comparator<? super T> comp) |
This method returns the minimum element of the given collection, according to the order induced by the specified comparator. |
nCopies​(int n, T o) |
This method returns an immutable list consisting of n copies of the specified object. |
newSetFromMap​(Map<E,​Boolean> map) |
This method returns a set backed by the specified map. |
replaceAll​(List<T> list, T oldVal, T newVal) |
This method replaces all occurrences of one specified value in a list with another. |
reverse​(List<?> list) |
This method reverses the order of the elements in the specified list |
reverseOrder() |
This method returns a comparator that imposes the reverse of the natural ordering on a collection of objects that implement the Comparable interface. |
reverseOrder​(Comparator<T> cmp) |
This method returns a comparator that imposes the reverse ordering of the specified comparator. |
rotate​(List<?> list, int distance) |
This method rotates the elements in the specified list by the specified distance. |
shuffle​(List<?> list) |
This method randomly permutes the specified list using a default source of randomness. |
shuffle​(List<?> list, Random rnd) |
This method randomly permute the specified list using the specified source of randomness. |
singletonMap​(K key, V value) |
This method returns an immutable map, mapping only the specified key to the specified value. |
singleton​(T o) |
This method returns an immutable set containing only the specified object. |
singletonList​(T o) |
This method returns an immutable list containing only the specified object. |
sort​(List<T> list) |
This method sorts the specified list into ascending order, according to the natural ordering of its elements. |
sort​(List<T> list, Comparator<? super T> c) |
This method sorts the specified list according to the order induced by the specified comparator. |
swap​(List<?> list, int i, int j) |
This method swaps the elements at the specified positions in the specified list. |
synchronizedCollection​(Collection<T> c) |
This method returns a synchronized (thread-safe) collection backed by the specified collection. |
synchronizedList​(List<T> list) |
This method returns a synchronized (thread-safe) list backed by the specified list. |
synchronizedMap​(Map<K,​V> m) |
This method returns a synchronized (thread-safe) map backed by the specified map. |
synchronizedNavigableMap​(NavigableMap<K,​V> m) |
This method returns a synchronized (thread-safe) navigable map backed by the specified navigable map. |
synchronizedNavigableSet​(NavigableSet<T> s) |
This method returns a synchronized (thread-safe) navigable set backed by the specified navigable set. |
synchronizedSet​(Set<T> s) |
This method returns a synchronized (thread-safe) set backed by the specified set. |
synchronizedSortedMap​(SortedMap<K,​V> m) |
This method returns a synchronized (thread-safe) sorted map backed by the specified sorted map. |
synchronizedSortedSet​(SortedSet<T> s) |
This method returns a synchronized (thread-safe) sorted set backed by the specified sorted set. |
unmodifiableCollection​(Collection<? extends T> c) |
This method returns an unmodifiable view of the specified collection. |
unmodifiableList​(List<? extends T> list) |
This method returns an unmodifiable view of the specified list. |
unmodifiableNavigableMap​(NavigableMap<K,​? extends V> m) |
This method returns an unmodifiable view of the specified navigable map. |
unmodifiableNavigableSet​(NavigableSet<T> s) |
This method returns an unmodifiable view of the specified navigable set. |
unmodifiableSet​(Set<? extends T> s) |
This method returns an unmodifiable view of the specified set. |
unmodifiableSortedMap​(SortedMap<K,​? extends V> m) |
This method returns an unmodifiable view of the specified sorted map. |
unmodifiableSortedSet​(SortedSet<T> s) |
This method returns an unmodifiable view of the specified sorted set. |
Now, we are done with listing all the methods, so by now we have a faint hint with us in perceiving how important these methods are when thinking about a global programming perspective. The important and frequently used methods while writing optimized code, as you will see these methods somehow in nearly every Java optimized code because of havoc usage of Collections class in Java. So here, more likely than in any class, we will not just be implementing the method but also be discussing operations that can be performed so that one can have conceptual clarity and strong command while implementing the same.
Java Collections Example
Examples of Collections Classes in Java are mentioned below:
- Adding Elements to the Collections
- Sorting a Collection
- Searching in a Collection
- Copying Elements
- Disjoint Collection
1. Adding elements to the Collections class object
The addAll() method of java.util.Collections class is used to add all the specified elements to the specified collection. Elements to be added may be specified individually or as an array.
Example
Java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class GFG {
public static void main(String[] args)
{
List<String> items = new ArrayList<>();
items.add( "Shoes" );
items.add( "Toys" );
Collections.addAll(items, "Fruits" , "Bat" , "Ball" );
for ( int i = 0 ; i < items.size(); i++) {
System.out.print(items.get(i) + " " );
}
}
}
|
Output
Shoes Toys Fruits Bat Ball
2. Sorting a Collection
java.util.Collections.sort() is used to sort the elements present in the specified list of Collections in ascending order. java.util.Collections.reverseOrder() is used to sort in descending order.
Example
Java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class GFG {
public static void main(String[] args)
{
List<String> items = new ArrayList<>();
items.add( "Shoes" );
items.add( "Toys" );
Collections.addAll(items, "Fruits" , "Bat" , "Mouse" );
Collections.sort(items);
for ( int i = 0 ; i < items.size(); i++) {
System.out.print(items.get(i) + " " );
}
System.out.println();
Collections.sort(items, Collections.reverseOrder());
for ( int i = 0 ; i < items.size(); i++) {
System.out.print(items.get(i) + " " );
}
}
}
|
Output
Bat Fruits Mouse Shoes Toys
Toys Shoes Mouse Fruits Bat
3. Searching in a Collection
java.util.Collections.binarySearch() method returns the position of an object in a sorted list. To use this method, the list should be sorted in ascending order, otherwise, the result returned from the method will be wrong. If the element exists in the list, the method will return the position of the element in the sorted list, otherwise, the result returned by the method would be the – (insertion point where the element should have been present if exist)-1).
Example
Java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class GFG {
public static void main(String[] args)
{
List<String> items = new ArrayList<>();
items.add( "Shoes" );
items.add( "Toys" );
items.add( "Horse" );
items.add( "Ball" );
items.add( "Grapes" );
Collections.sort(items);
System.out.println(
"The index of Horse is "
+ Collections.binarySearch(items, "Horse" ));
System.out.println(
"The index of Dog is "
+ Collections.binarySearch(items, "Dog" ));
}
}
|
Output
The index of Horse is 2
The index of Dog is -2
4. Copying Elements
The copy() method of java.util.Collections class is used to copy all the elements from one list into another. After the operation, the index of each copied element in the destination list will be identical to its index in the source list. The destination list must be at least as long as the source list. If it is longer, the remaining elements in the destination list are unaffected.
Example
Java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class GFG {
public static void main(String[] args)
{
List<String> destination_List = new ArrayList<>();
destination_List.add( "Shoes" );
destination_List.add( "Toys" );
destination_List.add( "Horse" );
destination_List.add( "Tiger" );
System.out.println(
"The Original Destination list is " );
for ( int i = 0 ; i < destination_List.size(); i++) {
System.out.print(destination_List.get(i) + " " );
}
System.out.println();
List<String> source_List = new ArrayList<>();
source_List.add( "Bat" );
source_List.add( "Frog" );
source_List.add( "Lion" );
Collections.copy(destination_List, source_List);
System.out.println(
"The Destination List After copying is " );
for ( int i = 0 ; i < destination_List.size(); i++) {
System.out.print(destination_List.get(i) + " " );
}
}
}
|
Output
The Original Destination list is
Shoes Toys Horse Tiger
The Destination List After copying is
Bat Frog Lion Tiger
5. Disjoint Collection
java.util.Collections.disjoint() is used to check whether two specified collections are disjoint or not. More formally, two collections are disjoint if they have no elements in common. It returns true if the two collections do not have any element in common.
Example
Java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class GFG {
public static void main(String[] args)
{
List<String> list1 = new ArrayList<>();
list1.add( "Shoes" );
list1.add( "Toys" );
list1.add( "Horse" );
list1.add( "Tiger" );
List<String> list2 = new ArrayList<>();
list2.add( "Bat" );
list2.add( "Frog" );
list2.add( "Lion" );
System.out.println(
Collections.disjoint(list1, list2));
}
}
|
Related Articles:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...