जावा में ऐरे को "जोड़ना": 5 सिद्ध तरीके (कोड के साथ)
\nनमस्ते, सहकर्मी! यदि आप यह पाठ पढ़ रहे हैं, तो आप एक ऐसे कार्य से जूझ रहे हैं जो देर-सबेर हर Java डेवलपर के सामने आता है — जावा में दो ऐरे को कैसे मर्ज करें? लगता है, इससे आसान क्या हो सकता है? बस लेकर जोड़ दो। लेकिन ऐसा नहीं है। Java में ऐरे को जोड़ने के लिए कोई मूल ऑपरेटर नहीं है (जैसे Python या JavaScript में है)। और यहीं से मज़ा शुरू होता है।
\nStack Overflow पर प्रश्न «How can I concatenate two arrays in Java?» ने सैकड़ों हज़ारों व्यूज़ जुटाए हैं। इसका मतलब है कि अनुभवी लोग भी कभी-कभी चुनाव में भ्रमित हो जाते हैं। इस ट्यूटोरियल में मैं आपको 5 काम करने वाले तरीके दिखाऊंगा — पुराने मैन्युअल कॉपी करने से लेकर आधुनिक Stream API तक। आप प्रत्येक दृष्टिकोण के फायदे और नुकसान जानेंगे और वह चुन सकेंगे जो आपके कार्य के लिए उपयुक्त हो।
\nचलिए शुरू करते हैं!
\n\nजावा में ऐरे को मर्ज करने का कोई सरल तरीका क्यों नहीं है?
\nJava में ऐरे एक निश्चित लंबाई वाली वस्तु है। आप एक ऐरे को दूसरे के अंत में बस "जोड़" नहीं सकते। एक नया ऐरे बनाना और उसमें तत्वों को कॉपी करना होता है। लेकिन चिंता न करें — मैं दिखाऊंगा कि इसे सुरुचिपूर्ण और बिना दर्द के कैसे किया जाए।
\n\nतरीका 1: मैन्युअल कॉपी करना (उन लोगों के लिए जो सब कुछ नियंत्रित करना पसंद करते हैं)
\nसबसे स्पष्ट और सरल विधि। हम एक नया ऐरे बनाते हैं, जिसकी लंबाई दो मूल ऐरे की लंबाई के योग के बराबर होती है, और इसे लूप में भरते हैं।
\npublic class ArrayConcatManual {\n public static void main(String[] args) {\n int[] array1 = {1, 2, 3};\n int[] array2 = {4, 5, 6};\n\n int[] result = new int[array1.length + array2.length];\n\n // पहला ऐरे कॉपी करें\n for (int i = 0; i < array1.length; i++) {\n result[i] = array1[i];\n }\n\n // दूसरा ऐरे कॉपी करें\n for (int i = 0; i < array2.length; i++) {\n result[array1.length + i] = array2[i];\n }\n\n // परिणाम प्रदर्शित करें\n for (int num : result) {\n System.out.print(num + " ");\n }\n // आउटपुट: 1 2 3 4 5 6\n }\n}\nफायदे: पूर्ण नियंत्रण, किसी तृतीय-पक्ष लाइब्रेरी की आवश्यकता नहीं, पढ़ने में आसान।
\nनुकसान: लंबा कोड, इंडेक्स में गलती होने की संभावना (खासकर यदि दो से अधिक ऐरे हों)।
\nसुझाव: इस विधि का उपयोग करें यदि आप समझना चाहते हैं कि सब कुछ "हुड के नीचे" कैसे काम करता है, या यदि आप शैक्षिक उद्देश्यों के लिए कोड लिख रहे हैं।
\n\nतरीका 2: System.arraycopy() — मानक उपकरण
\nJava में एक अंतर्निहित विधि System.arraycopy() है। यह मैन्युअल लूप की तुलना में तेज़ी से काम करती है, क्योंकि यह नेटिव कोड (native method) का उपयोग करती है। यह प्रोडक्शन के लिए अनुशंसित तरीका है।
import java.util.Arrays;\n\npublic class ArrayConcatSystem {\n public static void main(String[] args) {\n String[] fruits1 = {"apple", "banana"};\n String[] fruits2 = {"cherry", "date"};\n\n String[] result = new String[fruits1.length + fruits2.length];\n\n System.arraycopy(fruits1, 0, result, 0, fruits1.length);\n System.arraycopy(fruits2, 0, result, fruits1.length, fruits2.length);\n\n System.out.println(Arrays.toString(result));\n // आउटपुट: [apple, banana, cherry, date]\n }\n}\nयह कैसे काम करता है:
\n- \n
- पहला आर्गुमेंट — स्रोत ऐरे। \n
- दूसरा — स्रोत ऐरे में प्रारंभिक स्थिति (आमतौर पर 0)। \n
- तीसरा — लक्ष्य ऐरे। \n
- चौथा — लक्ष्य ऐरे में प्रारंभिक स्थिति। \n
- पाँचवाँ — कॉपी किए जाने वाले तत्वों की संख्या। \n
फायदे: तेज़, संक्षिप्त, मानक लाइब्रेरी।
\nनुकसान: इंडेक्स पर ध्यान देना आवश्यक है, ArrayIndexOutOfBoundsException फेंक सकता है।
तरीका 3: ArrayList और कलेक्शन — लचीलापन और सुविधा
\nयदि आपको केवल ऐरे को मर्ज करने की आवश्यकता नहीं है, बल्कि बाद में उनके साथ काम करना (जोड़ना, हटाना) भी है, तो यह विधि उपयोगी है।