जावा 9 में, Collections API में कई फैक्ट्री मेथड जोड़े गए हैं। इन फैक्ट्री मेथड का उपयोग करके, हम अनमॉडिफिएबल लिस्ट, सेट और मैप कलेक्शन ऑब्जेक्ट बना सकते हैं ताकि कोड की लाइनों की संख्या कम हो सके। List.of(), Set.of(), Map.of() और Map.ofEntries() स्टेटिक फैक्ट्री मेथड हैं जो जावा 9 में इम्यूटेबल कलेक्शन बनाने का सुविधाजनक तरीका प्रदान करते हैं।
इम्यूटेबल कलेक्शन के लाभ
- कम हीप स्पेस: कलेक्शन डेटा स्टोर करने के लिए आवश्यक स्पेस जावा के पुराने संस्करणों में पारंपरिक दृष्टिकोण की तुलना में बहुत कम है।
- तेज़ डेटा एक्सेस: चूंकि डेटा स्टोर करने और Collections.unmodifiable में लपेटने का ओवरहेड कम हो गया है, अब डेटा एक्सेस तेज़ हो गया है। इसका मतलब है कि प्रोग्राम की समग्र दक्षता बढ़ जाती है।
- थ्रेड सुरक्षा: इम्यूटेबल कलेक्शन स्वाभाविक रूप से थ्रेड-सेफ हैं। चूंकि सभी थ्रेड हमेशा अंतर्निहित डेटा का समान दृश्य प्राप्त करते हैं।
सिंटैक्स
List.of(elements...) Set.of(elements...) Map.of(k1, v1, k2, v2)
उदाहरण
import java.util.Set;
import java.util.List;
import java.util.Map;
public class ImmutableCollectionsTest {
public static void main(String args[]) {
List stringList = List.of("a", "b", "c");
System.out.println("List values: " + stringList);
Set stringSet = Set.of("a", "b", "c");
System.out.println("Set values: " + stringSet);
Map stringMap = Map.of("a", 1, "b", 2, "c", 3);
System.out.println("Map values: " + stringMap);
}
}
आउटपुट
List values: [a, b, c] Set values: [a, b, c] Map values: {a=1, b=2, c=3}