Kotlin में Arrays: घबराएं नहीं, यह आसान है
\n\nअगर आप Java से Kotlin पर आ रहे हैं या यह आधुनिक भाषा सीखना शुरू कर रहे हैं, तो सवाल "Kotlin में वैल्यू के साथ ऐरे कैसे इनिशियलाइज़ करें" लगभग तुरंत उठता है। Stack Overflow पर इस टॉपिक को हज़ारों बार देखा गया है — इसका मतलब है कि यह विषय वास्तव में महत्वपूर्ण है।
\n\nअच्छी खबर: Kotlin ने Java की तुलना में Arrays के साथ काम करना कहीं अधिक आसान बना दिया है। बुरी खबर: कई तरीके हैं, और शुरुआती अक्सर भ्रमित हो जाते हैं। आइए एक बार और हमेशा के लिए Kotlin Array Initialization के सभी विकल्पों को समझ लें — सरल से जटिल तक, वास्तविक कोड उदाहरणों के साथ।
\n\n1. सबसे आसान तरीका: arrayOf()
\n\narrayOf() फंक्शन आपकी रोज़मर्रा की ज़रूरत है। यह दिए गए मानों से एक ऐरे बनाता है, अपने आप टाइप निर्धारित करता है।
// पूर्णांकों का ऐरे\nval numbers = arrayOf(1, 2, 3, 4, 5)\n\n// स्ट्रिंग का ऐरे\nval fruits = arrayOf("सेब", "केला", "संतरा")\n\n// मिश्रित टाइप का ऐरे (Any)\nval mixed = arrayOf(42, "Kotlin", true)\n\nprintln(numbers.contentToString()) // [1, 2, 3, 4, 5]\nprintln(fruits.contentToString()) // [सेब, केला, संतरा]\n\n\nमहत्वपूर्ण: arrayOf() एक Array<T> — ऑब्जेक्ट ऐरे बनाता है। अगर आपको प्रदर्शन के लिए प्रिमिटिव टाइप (int, char, boolean) चाहिए, तो आगे पढ़ें।
2. प्रिमिटिव Arrays: intArrayOf(), doubleArrayOf() और अन्य
\n\nKotlin प्रत्येक प्रिमिटिव टाइप के लिए विशेष फंक्शन प्रदान करता है। ये मेमोरी बचाते हैं और तेज़ी से काम करते हैं:
\n\n// पूर्णांक\nval intArr = intArrayOf(10, 20, 30, 40, 50)\n\n// फ्लोटिंग-पॉइंट संख्याएं\nval doubleArr = doubleArrayOf(1.5, 2.7, 3.14)\n\n// बूलियन मान\nval boolArr = booleanArrayOf(true, false, true)\n\n// कैरेक्टर\nval charArr = charArrayOf('K', 'o', 't', 'l', 'i', 'n')\n\n// बाइट्स\nval byteArr = byteArrayOf(0x48, 0x65, 0x6C, 0x6C, 0x6F) // "Hello"\n\nprintln(intArr.joinToString()) // 10, 20, 30, 40, 50\n\n\nपूरी सूची: intArrayOf, doubleArrayOf, floatArrayOf, longArrayOf, shortArrayOf, byteArrayOf, booleanArrayOf, charArrayOf.
कब उपयोग करें? अगर आप बड़े डेटा के साथ काम कर रहे हैं या परफॉरमेंस-ओरिएंटेड कोड लिख रहे हैं — प्रिमिटिव Arrays लें। सामान्य कार्यों के लिए arrayOf() काफी है।
3. Array Constructor: लैम्ब्डा के साथ Array(size)
\n\nKotlin में ऐरे इनिशियलाइज़ करने का सबसे लचीला तरीका — लैम्ब्डा एक्सप्रेशन के साथ कंस्ट्रक्टर का उपयोग करना है। आप साइज़ और भरने का नियम सेट करते हैं:
\n\n// 0 से 4 तक संख्याओं के वर्ग\nval squares = Array(5) { i -> i * i }\nprintln(squares.contentToString()) // [0, 1, 4, 9, 16]\n\n// 10 रैंडम संख्याओं का ऐरे\nimport kotlin.random.Random\nval randoms = Array(10) { Random.nextInt(100) }\nprintln(randoms.contentToString()) // [42, 17, 83, 5, 91, ...]\n\n// पैटर्न के साथ स्ट्रिंग का ऐरे\nval labels = Array(3) { index -> "आइटम #${index + 1}" }\nprintln(labels.contentToString()) // [आइटम #1, आइटम #2, आइटम #3]\n\n\nलैम्ब्डा को एलिमेंट का इंडेक्स (0 से size-1 तक) मिलता है और उसे वैल्यू लौटानी होती है। यह एक शक्तिशाली टूल है — आप किसी भी नियम से ऐरे भर सकते हैं, जिसमें फंक्शन कॉल शामिल हैं।
\n\n4. arrayOfNulls() — खाली सेल वाला ऐरे
\n\nकभी-कभी ऐरे बनाना होता है, लेकिन बाद में भरना होता है। इसके लिए arrayOfNulls() है:
// 5 null-एलिमेंट का ऐरे\nval nullArray = arrayOfNulls<String>(5)\nprintln(nullArray.contentToString()) // [null, null, null, null, null]\n\n// बाद में भरें\nnullArray[0] = "पहला"\nnullArray[2] = "तीसरा"\nprintln(nullArray.contentToString()) // [पहला, null, तीसरा, null, null]\n\n\nटाइप स्पष्ट रूप से बताना ज़रूरी है — कंपाइलर