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 Value import 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); } } } |
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 Value import 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); } } } |
Collection : [20, 30, 40, 50, 60] Synchronized view is : [20, 30, 40, 50, 60]