तकनीकी साक्षात्कार में अक्सर ऐसे प्रश्न होते हैं जो संग्रह, विशेष रूप से हैशमैप्स के बारे में आपकी समझ का परीक्षण करते हैं। एक आम चुनौती में किसी सूची में तत्वों की घटनाओं की गिनती करना शामिल है। यह प्रश्न साक्षात्कारकर्ताओं को डेटा एकत्रीकरण को कुशलतापूर्वक संभालने करने की आपकी क्षमता का आकलन करने और NullPointerException जैसे नुकसान से बचने में मदद करता है।
यदि आप हैशमैप्स में नए हैं, तो आप इस पोस्ट पर ध्यान देने से पहले मूलभूत ज्ञान के लिए मेरी हैशमैप की मूल बातें क्रैक करना: जावा डेवलपर्स के लिए मुख्य अवधारणाएं देखना चाहेंगे।
इस पोस्ट में, हम:
आपको पूर्णांकों की एक सूची दी गई है, और आपका कार्य सूची में प्रत्येक अद्वितीय संख्या को उसकी घटनाओं की गिनती के साथ लौटाना है। यह एक विशिष्ट समस्या है जो हैशमैप डेटा संरचना के बारे में आपकी समझ और इसे कुशलतापूर्वक लागू करने की आपकी क्षमता का परीक्षण करती है।
यहां एक उदाहरण है:
{1=2, 2=2, 3=1, 5=1}यदि
इनपुट सूची शून्य या खाली है, तो परिणाम को एक खाली हैशमैप लौटाना चाहिए।
मैन्युअल रूप से जांचते हैं कि क्या हैशमैप में पहले से ही कुंजी के रूप में संख्या मौजूद है। यदि ऐसा होता है, तो हम मूल्य बढ़ाते हैं; यदि ऐसा नहीं होता है, तो हम 1 के मान के साथ कुंजी डालते हैं।
import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; public class CountNumbers { private HashMapgetCount(List list) { // Initialize HashMap to store number counts HashMap map = new HashMap(); // To avoid NullPointerException in case of a null list if (list != null) { // Iterate through each number in the list for (int num : list) { // If first occurrence, add number with count 1 if (!map.containsKey(num)) { map.put(num, 1); } else { // If the number already exists, increment its count by 1 map.put(num, map.get(num) 1); } } } return map; } public static void main(String[] args) { // Using ArrayList Parameterized Constructor with Collection as argument List numbers = new ArrayList(Arrays.asList(1, 2, 3, 5, 2, 1)); CountNumbers nums = new CountNumbers(); System.out.println(nums.getCount(null)); // Result -> {} System.out.println(nums.getCount(numbers)); // Result -> {1=2, 2=2, 3=1, 5=1} } }
समय जटिलता:
अंतरिक्ष जटिलता: O(n) - सबसे खराब स्थिति में, सभी नंबर अद्वितीय होते हैं और हैशमैप में संग्रहीत होते हैं।
स्वच्छ और अधिक संक्षिप्त तरीका प्रदान करता है। यदि मानचित्र में कुंजी नहीं मिलती है तो यह डिफ़ॉल्ट मान लौटाकर if-else तर्क की आवश्यकता को समाप्त कर देता है।
{1=2, 2=2, 3=1, 5=1}
पैरामीटर:
रिटर्न: वह मान जिस पर निर्दिष्ट कुंजी मैप की जाती है, या यदि मानचित्र में कुंजी के लिए कोई मैपिंग नहीं है तो डिफ़ॉल्ट मान।
import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; public class CountNumbers { private HashMapgetCount(List list) { // Initialize HashMap to store number counts HashMap map = new HashMap(); // To avoid NullPointerException in case of a null list if (list != null) { // Iterate through each number in the list for (int num : list) { // If first occurrence, add number with count 1 if (!map.containsKey(num)) { map.put(num, 1); } else { // If the number already exists, increment its count by 1 map.put(num, map.get(num) 1); } } } return map; } public static void main(String[] args) { // Using ArrayList Parameterized Constructor with Collection as argument List numbers = new ArrayList(Arrays.asList(1, 2, 3, 5, 2, 1)); CountNumbers nums = new CountNumbers(); System.out.println(nums.getCount(null)); // Result -> {} System.out.println(nums.getCount(numbers)); // Result -> {1=2, 2=2, 3=1, 5=1} } }
पहलू | पारंपरिक दृष्टिकोण | getOrDefault() का उपयोग करना |
---|---|---|
कोड पठनीयता | यदि-अन्यथा तर्क के साथ थोड़ा क्रियात्मकस्वच्छ और अधिक संक्षिप्त | |
प्रदर्शन | वही (O(n))वही (O(n)) | |
उदाहरण | सभी जावा संस्करणों के लिए काम करता हैजावा 8 या उच्चतर की आवश्यकता है |
getOrDefault() का उपयोग करने से कोड अधिक संक्षिप्त और पठनीय हो जाता है। यह प्रश्न एक आम साक्षात्कार पसंदीदा है क्योंकि यह हैशमैप्स, पुनरावृत्ति, और शून्य मानों को संभालने की आपकी समझ का मूल्यांकन करता है। यह आवृत्ति गिनती और डेटा एकत्रीकरण से जुड़ी समस्याओं से भी निकटता से संबंधित है।
यदि आपको यह पोस्ट उपयोगी लगी, तो कलेक्शंस फ्रेमवर्क एसेंशियल श्रृंखला में अन्य पोस्ट भी अवश्य देखें!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3