<T> Collection<T> java.util.Collections.unmodifiableCollection(Collection<? extends T> c)
Returns an unmodifiable view of the specified collection.
This method allows modules to provide users with "read-only" access to internal collections.
Query operations on the returned collection "read through" to the specified collection. If we will try to modify the returned collection whether direct or via its iterator, result in an UnsupportedOperationException.
The returned collection will be serializable if the specified collection is serializable.
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
/**
* Collection read only by using
* Collections.unmodifiableCollection()
*/
public class ReadOnlyCollection {
public static void main(String args[]) {
//making existing ArrayList readonly in Java
List<String> readableList = new ArrayList<String>();
readableList.add("element 1");
readableList.add("element 2");
//creating read only Collection in Java
Collection<String> readOnlyCollection =
Collections.unmodifiableCollection(readableList);
Iterator<String> itr = readOnlyCollection.iterator();
while(itr.hasNext()) {
System.out.println(itr.next());
}
//add will throw Exception because List is read only
readOnlyCollection.add("element 3");
}
}
Output:
element 1
element 2
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.add(Unknown Source) at core.readonly.collections.ReadOnlyCollection.main(ReadOnlyCollection.java:30)
No comments:
Post a Comment