Java:
सहयोगी अरेज़ का उपयोग करना
कैसे करें:
जावा में कुछ भाषाओं की तरह बिल्ट-इन सहयोगी एरेज़ नहीं होते हैं, लेकिन इसमें Map
इंटरफेस और HashMap
तथा TreeMap
जैसी कक्षाएँ प्रदान की गई हैं इस भूमिका को भरने के लिए। यहाँ HashMap
का उपयोग कैसे करें:
import java.util.HashMap;
import java.util.Map;
public class LearnMaps {
public static void main(String[] args) {
// एक HashMap बनाना
Map<String, Integer> ageOfFriends = new HashMap<>();
// तत्व जोड़ना
ageOfFriends.put("Alice", 24);
ageOfFriends.put("Bob", 30);
ageOfFriends.put("Charlie", 28);
// तत्वों तक पहुँचना
System.out.println("Alice की उम्र: " + ageOfFriends.get("Alice"));
// अस्तित्व में न होने वाली कुंजियों का हैंडलिंग
System.out.println("मानचित्र में न होने वाले किसी की उम्र: " + ageOfFriends.getOrDefault("Dan", -1));
// तत्वों पर पुनरावृत्ति करना
for (Map.Entry<String, Integer> entry : ageOfFriends.entrySet()) {
System.out.println(entry.getKey() + " की उम्र " + entry.getValue() + " वर्ष है।");
}
}
}
नमूना आउटपुट:
Alice की उम्र: 24
मानचित्र में न होने वाले किसी की उम्र: -1
Alice की उम्र 24 वर्ष है।
Bob की उम्र 30 वर्ष है।
Charlie की उम्र 28 वर्ष है।
HashMap
केवल एक कार्यान्वयन है। यदि आपकी कुंजियाँ अनूठी हैं और आपको उन्हें क्रमित करने की आवश्यकता है, तो TreeMap
पर विचार करें। प्रविष्टि के क्रम को बनाए रखने के लिए एक मानचित्र हेतु, LinkedHashMap
आपका दोस्त है।
गहराई से अध्ययन
जावा में मानचित्र, संग्रह फ्रेमवर्क का हिस्सा हैं, जिसे JDK 1.2 में परिचय दिया गया था, लेकिन प्रविष्टियों पर सुगम पुनरावृत्ति के लिए Java 8 में forEach
विधि की शुरुआत सहित वर्षों में महत्वपूर्ण सुधार देखे गए हैं। मानचित्र कार्यान्वयन (HashMap
, LinkedHashMap
, TreeMap
) का चयन आपकी विशिष्ट आवश्यकताओं के आधार पर किया जाना चाहिए जैसे कि क्रमबद्धता और प्रदर्शन। उदाहरण के लिए, HashMap
मूलभूत कार्यों (get और put) के लिए
O(1) समय प्रदर्शन प्रदान करता है, बशर्ते हैश फ़ंक्शन तत्वों को बकेट्स में सही ढंग से बिखेरता हो। हालांकि, यदि आपको प्राकृतिक क्रमबद्धता या कस्टम तुलनात्मकों के आधार पे छँटाई की आवश्यकता है, तो TreeMap
जाने का स्थान है, जो प्रविष्टि और पूछताछ के लिए O(log n) समय प्रदान करता है।
Map
के परिचय से पहले, सहयोगी एरेज़ को आमतौर पर दो समांतर एरेज़ (एक कुंजियों के लिए, एक मूल्यों के लिए) या कम कुशलता वाली कस्टम डेटा संरचनाओं के साथ क्रियान्वित किया जाता था। Map
और इसके कार्यान्वयनों के विकल्पों में विशेषीकृत मानचित्र प्रदान करने वाली तृतीय-पक्ष पुस्तकालयें शामिल हो सकती हैं, जैसे कि Google की Guava पुस्तकालय में BiMap के लिए द्विदिश मानचित्र, जहाँ आपको इसके मूल्य द्वारा कुशलतापूर्वक एक कुंजी को खोजने की आवश्यकता होती है। हालांकि, जावा में अधिकांश उपयोग के मामलों के लिए, मानक पुस्तकालय के मानचित्र पर्याप्त रूप से मजबूत और लचीले होते हैं ताकि कार्य को संभाल सकें।