Collections synchronizedCollection() method in Java with Examples

The synchronizedCollection() method of java.util.Collections class is used to return a synchronized (thread-safe) collection backed by the specified collection. In order to guarantee serial access, it is critical that all access to the backing collection is accomplished through the returned collection.
Syntax: 
 
public static <T> Collection<T> synchronizedCollection(Collection<T> c)
Parameters: This method takes the collection c as a parameter to be “wrapped” in a synchronized collection.
Return Value: This method returns a synchronized view of the specified collection.
Below are the examples to illustrate the synchronizedCollection() method
Example 1: 
 
Java
// Java program to demonstrate synchronizedCollection()// method for String Valueimport java.util.*;public class GFG1 {    public static void main(String[] argv)        throws Exception    {        try {            // creating object of List<String>            List<String> vector = new ArrayList<String>();            // populate the vector            vector.add("A");            vector.add("B");            vector.add("C");            vector.add("D");            vector.add("E");            // printing the Collection            System.out.println("Collection : " + vector);            // getting the synchronized view of Collection            Collection<String> c = Collections                                       .synchronizedCollection(vector);            // printing the Collection            System.out.println("Synchronized view"                               + " of collection : " + c);        }        catch (IndexOutOfBoundsException e) {            System.out.println("Exception thrown : " + e);        }    }} | 
Output
Collection : [A, B, C, D, E] Synchronized view of collection : [A, B, C, D, E]
Example 2: 
 
Java
// Java program to demonstrate synchronizedCollection()// method for Integer Valueimport java.util.*;public class GFG1 {    public static void main(String[] argv)        throws Exception    {        try {            // creating object of List<String>            List<Integer> vector = new ArrayList<Integer>();            // populate the vector            vector.add(20);            vector.add(30);            vector.add(40);            vector.add(50);            vector.add(60);            // printing the Collection            System.out.println("Collection : " + vector);            // getting the synchronized view of Collection            Collection<Integer> c = Collections                                        .synchronizedCollection(vector);            // printing the Collection            System.out.println("Synchronized view is : " + c);        }        catch (IllegalArgumentException e) {            System.out.println("Exception thrown : " + e);        }    }} | 
Output: 
Collection : [20, 30, 40, 50, 60] Synchronized view is : [20, 30, 40, 50, 60]
				
					


