Java Collections synchronizedCollection() Method
Description
The synchronizedCollection(Collection<T>) method is used get a synchronized (thread-safe) collection backed by the specified collection.
Declaration
Following is the declaration for java.util.Collections.synchronizedCollection() method.
public static <T> Collection<T> synchronizedCollection(Collection<T> c)
Parameters
c − The collection to be "wrapped" in a synchronized collection.
Return Value
The method call returns a synchronized view of the specified collection.
Exception
NA
Getting Synchronized Collection From a Unsynchronized List of Integer Example
The following example shows the usage of Java Collection synchronizedCollection(Collection) method. We've created a List object with some integers. Using synchronizedCollection(Collection) method, we've retrieved the synchronized version of list and printed the list.
package com.tutorialspoint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Collection;
public class CollectionsDemo {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5));
// synchronized version of list
Collection<Integer> c = Collections.synchronizedCollection(list);
System.out.println("Synchronized collection: "+ c);
}
}
Output
Let us compile and run the above program, this will produce the following result −
Synchronized collection: [1, 2, 3, 4, 5]
Getting Synchronized Collection From a Unsynchronized List of String Example
The following example shows the usage of Java Collection synchronizedCollection(Collection) method. We've created a List object with some strings. Using synchronizedCollection(Collection) method, we've retrieved the synchronized version of list and printed the list.
package com.tutorialspoint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Collection;
public class CollectionsDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList("Welcome","to","Tutorialspoint"));
// synchronized version of list
Collection<String> c = Collections.synchronizedCollection(list);
System.out.println("Synchronized collection: "+ c);
}
}
Output
Let us compile and run the above program, this will produce the following result −
Synchronized collection: [Welcome, to, Tutorialspoint]
Getting Synchronized Collection From a Unsynchronized List of Object Example
The following example shows the usage of Java Collection synchronizedCollection(Collection) method. We've created a List object with some Student objects. Using synchronizedCollection(Collection) method, we've retrieved the synchronized version of list and printed the list.
package com.tutorialspoint;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Collection;
public class CollectionsDemo {
public static void main(String[] args) {
List<Student> list = new ArrayList<>(Arrays.asList(new Student(1, "Julie"),
new Student(2, "Robert"), new Student(3, "Adam")));
// synchronized version of list
Collection<Student> c = Collections.synchronizedCollection(list);
System.out.println("Synchronized collection: "+ c);
}
}
class Student {
int rollNo;
String name;
Student(int rollNo, String name){
this.rollNo = rollNo;
this.name = name;
}
@Override
public String toString() {
return "[ " + this.rollNo + ", " + this.name + " ]";
}
}
Output
Let us compile and run the above program, this will produce the following result −
Synchronized collection: [[ 1, Julie ], [ 2, Robert ], [ 3, Adam ]]