सिर्फ एक आकार प्रदान करके मैं जावा में कोटलिन में एक सरणी कैसे बना सकता हूं?


86

मैं एक एरियर कैसे बना सकता हूं जैसे हम जावा में करते हैं?

int A[] = new int[N];

कोटलिन में मैं यह कैसे कर सकता हूं?


2
मुझे पता है कि आप के बारे में पूछ रहे हैं int, लेकिन वस्तुओं के लिए, stackoverflow.com/questions/32679060/…
Thilo

जवाबों:


153

संदर्भ के अनुसार , सरणियाँ निम्नलिखित तरीके से बनाई जाती हैं:

  • जावा के आदिम प्रकारों के लिए अलग-अलग प्रकार हैं IntArray, DoubleArrayआदि जो अनबॉक्स वैल्यू को स्टोर करते हैं।

    वे संबंधित बिल्डरों और कारखाने के कार्यों के साथ बनाए गए हैं:

    val arrayOfZeros = IntArray(size) //equivalent in Java: new int[size]
    val numbersFromOne = IntArray(size) { it + 1 }
    val myInts = intArrayOf(1, 1, 2, 3, 5, 8, 13, 21)
    

    पहले वाला जावा में simillar है, यह सिर्फ डिफ़ॉल्ट मूल्य से भरा एक आदिम सरणी बनाता है, उदाहरण के लिए Int, के falseलिए शून्य Boolean

  • गैर आदिम-सरणियों को Array<T>वर्ग द्वारा दर्शाया जाता है , जहां Tआइटम प्रकार है।

    Tअभी भी जावा ( Int,, Boolean...) में एक प्रकार के आदिम हो सकते हैं , लेकिन अंदर के मूल्य जावा के समकक्ष होंगे Integer, Doubleऔर इसी तरह।

    इसके अलावा, अशक्त और गैर-अशक्तT दोनों की तरह हो सकता है और ।StringString?

    ये एक समान तरीके से बनाए जाते हैं:

    val nulls = arrayOfNulls<String>(size) //equivalent in Java: new String[size]
    val strings = Array(size) { "n = $it" } 
    val myStrings = arrayOf("foo", "bar", "baz")
    
    val boxedInts = arrayOfNulls<Int>(size) //equivalent in Java: new Integer[size]
    val boxedZeros = Array(size) { 0 }
    

15
Array<Int>(size)संकलन नहीं है। ऐसा इसलिए है क्योंकि आप तत्वों को प्रदान किए बिना एक गैर-अशक्त सरणी नहीं बना सकते।
किरिल रहमान

2
@KirillRakhman, आपकी टिप्पणी के लिए धन्यवाद, यह एक अनजानी गलती थी। फिक्स्ड।
हॉटकी

0

कोटलिन में, एन के आकार का एक अंतर्क्षेत्र बनाना सरल है। IntArray(n)हॉटकी के उत्तर में विस्तृत रूप में, उपयुक्त प्रकार का उपयोग करें या।

अपने निश्चित आकार के सरणी का उपयोग करते समय, आप कोटलिन विनाशकारी का उपयोग कर सकते हैं

// Create fixed sized array
val point = IntArray(2)

// Access values directly
val (x, y) = point

इस स्थिति में, xइंडेक्स 0 से, yइंडेक्स 1, आदि से लिया जाएगा ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.