Java 9 में, फैक्टरी मेथड्स को कलेक्शन API में जोड़ा गया है। हम List.of(), Set.of(), Map.of(), और Map.ofEntries() का उपयोग करके अनमॉडिफिएबल लिस्ट, सेट और मैप कलेक्शन ऑब्जेक्ट बना सकते हैं, जो स्टेटिक फैक्टरी मेथड्स हैं जो अपरिवर्तनीय कलेक्शन बनाने का सुविधाजनक तरीका प्रदान करते हैं।
कलेक्शन फैक्टरी मेथड्स के लिए शर्तें नीचे दी गई हैं:
- वे संरचनात्मक रूप से अपरिवर्तनीय हैं।
- वे null तत्वों या null कुंजियों की अनुमति नहीं देते हैं।
- यदि सभी तत्व सीरियलाइज़ेबल हैं तो वे सीरियलाइज़ेबल हैं।
- वे निर्माण के समय डुप्लिकेट तत्वों/कुंजियों को अस्वीकार करते हैं।
- सेट तत्वों का इटरेशन क्रम अनिर्दिष्ट है और परिवर्तन के अधीन है।
- वे मान-आधारित हैं। फैक्टरी नए इंस्टेंस बनाने या मौजूदा इंस्टेंस का पुन: उपयोग करने के लिए स्वतंत्र हैं। इसलिए, इन इंस्टेंस पर पहचान-संवेदनशील ऑपरेशन, पहचान हैश कोड, और सिंक्रनाइज़ेशन अविश्वसनीय हैं और उनसे बचा जाना चाहिए।
सिंटैक्स
List.of(elements...) Set.of(elements...) Map.of(k1, v1, k2, v2)
उदाहरण
import java.util.Set; public class CollectionsTest { public static void main(String args[]) { System.out.println("Java 9 Introduced a static factory method: of()"); Set<String> immutableCountrySet = Set.of("India", "England", "South Africa", "Australia"); System.out.println(immutableCountrySet); try { immutableCountrySet.add("Newzealand"); } catch(Exception e) { System.out.println("Caught Exception, Adding Entry to Immutable Collection!"); } } }आउटपुट
Java 9 Introduced a static factory method: of() [South Africa, India, Australia, England] Caught Exception, Adding Entry to Immutable Collection!