java.util.Collections क्लास किसी भी कलेक्शन के अनमॉडिफिएबल (रीड-ओनली) व्यू प्राप्त करने के लिए unmodifiableXxx() विधियाँ प्रदान करती है। संशोधन का कोई भी प्रयास UnsupportedOperationException फेंकता है।
मुख्य विधियाँ
| क्र.सं. | विधि और विवरण |
|---|---|
| 1 | static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c) |
| 2 | static <T> List<T> unmodifiableList(List<? extends T> list) |
| 3 | static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m) |
| 4 | static <T> Set<T> unmodifiableSet(Set<? extends T> s) |
| 5 | static <K,V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<K,? extends V> m) |
| 6 | static <T> SortedSet<T> unmodifiableSortedSet(SortedSet<T> s) |
उदाहरण
import java.util.*;
public class ReadOnlyCollection {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("JavaFx");
list.add("Java");
list.add("WebGL");
list.add("OpenCV");
System.out.println("Original: " + list);
List readOnlyList = Collections.unmodifiableList(list);
System.out.println("Read-only: " + readOnlyList);
// संशोधन का प्रयास - अपवाद फेंकेगा
readOnlyList.add("CoffeeScript");
}
} आउटपुट
Original: [JavaFx, Java, WebGL, OpenCV]
Read-only: [JavaFx, Java, WebGL, OpenCV]
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.add(Unknown Source)
at ReadOnlyCollection.main(ReadOnlyCollection.java:20)नोट
- यह एक व्यू बनाता है; मूल कलेक्शन अभी भी संशोधित किया जा सकता है।
- Java 10+ के लिए,
List.of(),Set.of(),Map.of()सही मायने में अपरिवर्तनीय कलेक्शन बनाते हैं।