जावा 9 इम्यूटेबल लिस्ट, सेट, और मैप बनाने के लिए फैक्ट्री मेथड प्रदान करता है। यह खाली या नॉन-खाली कलेक्शन ऑब्जेक्ट बनाने के लिए उपयोगी हो सकता है। जावा 8 और पूर्व संस्करणों में, हम unmodifiableXXX जैसे कलेक्शन क्लास यूटिलिटी मेथड का उपयोग करके इम्यूटेबल कलेक्शन ऑब्जेक्ट बना सकते हैं। यदि हमें इम्यूटेबल लिस्ट बनाने की आवश्यकता है तो Collections.unmodifiableList() मेथड का उपयोग करें।
ये फैक्ट्री मेथड हमें आसान इनिशियलाइज़ेशन की अनुमति देते हैं इम्यूटेबल कलेक्शन का चाहे वे खाली हों या नॉन-खाली।
इम्यूटेबल लिस्ट का इनिशियलाइज़ेशन:
ListimmutableEmptyList = List.of();
उपरोक्त में, हमने एक खाली, इम्यूटेबल लिस्ट इनिशियलाइज़ की है।
इम्यूटेबल सेट का इनिशियलाइज़ेशन:
SetimmutableEmptySet = Set.of();
उपरोक्त में, हमने एक खाली, इम्यूटेबल सेट इनिशियलाइज़ की है।
इम्यूटेबल मैप का इनिशियलाइज़ेशन:
MapimmutableEmptyMap = Map.of();
उपरोक्त में, हमने एक खाली, इम्यूटेबल मैप इनिशियलाइज़ की है।
उदाहरण
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class ImmutableCollectionTest {
public static void main(String args[]) {
List list8 = new ArrayList();
list8.add("INDIA");
list8.add("AUSTRALIA");
list8.add("ENGLAND");
list8.add("NEWZEALAND");
List immutableList8 = Collections.unmodifiableList(list8);
immutableList8.forEach(System.out::println);
System.out.println();
List immutableList = List.of("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND");
immutableList.forEach(System.out::println);
System.out.println();
Set immutableSet = Set.of("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND");
immutableSet.forEach(System.out::println);
System.out.println();
Map immutableMap = Map.of("INDIA", "India", "AUSTRALIA", "Australia", "ENGLAND", "England", "NEWZEALAND", "Newzealand");
immutableMap.forEach((key, value) -> System.out.println(key + " : " + value));
System.out.println();
}
}
आउटपुट
INDIA AUSTRALIA ENGLAND NEWZEALAND INDIA AUSTRALIA ENGLAND NEWZEALAND AUSTRALIA ENGLAND NEWZEALAND INDIA AUSTRALIA : Australia ENGLAND : England NEWZEALAND : Newzealand INDIA : India