Avatar ·

Java में डबल ब्रेस इनिशियलाइज़ेशन (Double Brace Initialization) की दक्षता: क्या इसका उपयोग करना चाहिए?

सभी को नमस्ते! मैं एक शुरुआती Java डेवलपर हूँ और हाल ही में मुझे एक दिलचस्प सिंटैक्स मिला — डबल ब्रेस इनिशियलाइज़ेशन (Double Brace Initialization)। यह बहुत संक्षिप्त दिखता है, खासकर जब आपको जल्दी से एक collection बनाने और भरने की आवश्यकता होती है।\n\nयहाँ एक उदाहरण है जो मैं अक्सर शैक्षिक उदाहरणों में देखता हूँ:\n\n```java\nMap map = new HashMap<>() {{\n put("key1", "value1");\n put("key2", "value2");\n put("key3", "value3");\n}};\n```\n\nएक तरफ, यह बहुत सुविधाजनक है — एक अलग कोड ब्लॉक बनाने, वेरिएबल घोषित करने और फिर `put()` के माध्यम से इसे भरने की आवश्यकता नहीं है। सब कुछ एक ही एक्सप्रेशन में हो जाता है। लेकिन मुझे एक सवाल परेशान करता है: यह कितना कुशल है? क्योंकि यहाँ एक anonymous inner class बनाया जाता है, और इसके अतिरिक्त ओवरहेड होते हैं।\n\nमैंने Stack Overflow पर पढ़ा कि यह दृष्टिकोण हो सकता है