2016-02-07 9 views
24

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

int A[] = new int[N]; 

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

+2

मुझे पता है तुम 'int' के बारे में पूछ रहे हैं, लेकिन वस्तुओं के लिए, वहाँ है http://stackoverflow.com/questions/32679060/kotlin -क्रेट-ए-नियमित-सरणी-इन-इन-जावा – Thilo

उत्तर

46

reference के अनुसार, सरणियों निम्नलिखित तरीके से बनाई गई हैं:

  • जावा के आदिम प्रकार के लिए अलग-अलग प्रकार IntArray देखते हैं, DoubleArray आदि जो unboxed मान संग्रहीत।

    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 है, यह सिर्फ एक आदिम डिफ़ॉल्ट मान से भर देता है, उदाहरण के लिए बनाता है:

    वे इसी निर्माणकर्ता और कारखाने कार्यों के साथ बनाई गई हैं Boolean के लिए Int, false के लिए शून्य।

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

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

    इसके अलावा, T दोनों nullable and non-nullString और String? की तरह हो सकता है।

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

    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 } 
    
+4

'ऐरे (आकार)' संकलित नहीं करता है। ऐसा इसलिए है क्योंकि आप तत्व प्रदान किए बिना एक गैर-शून्य सरणी नहीं बना सकते हैं। –

+1

@ किरीलरखमान, आपकी टिप्पणी के लिए धन्यवाद, यह एक अनजान गलती थी। फिक्स्ड। – hotkey

संबंधित मुद्दे