कोटलिन जावा के स्ट्रिंग [] के बराबर है?


164

मैं देखता हूं कि कोटलिन के पास जावा में ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArrayबराबर हैं byte[], short[], int[],char[], double[], float[]

अब मैं सोच रहा था, क्या StringArrayजावा के बराबर कोई है String[]?


7
typealias StringArray = Array<String>;)
marstran

जवाबों:


225

वहाँ के लिए कोई विशेष मामला है String, क्योंकि String, JVM पर एक साधारण निर्देशात्मक प्रकार है के साथ विपरीत में जावा पुरातन ( int, double, ...) - उन्हें एक संदर्भ में भंडारण Array<T>की आवश्यकता है उनकी तरह वस्तुओं में मुक्केबाजी IntegerऔरDoubleIntArrayकोटलिन की तरह विशेष सरणियों का उद्देश्य गैर-बॉक्सिंग आदिमों को संग्रहीत करना है, बॉक्सिंग और अनबॉक्सिंग ओवरहेड से छुटकारा पाना (जावा के int[]बजाय जावा के समान Integer[])।

आप Array<String>(और Array<String?>nullables के लिए) का उपयोग कर सकते हैं , जो String[]जावा में बराबर है :

val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")

इन्हें भी देखें: भाषा के संदर्भ में सारणी


18

arrayOf , arrayOfNulls , blankArray का उपयोग करें

var colors_1: Array<String> = arrayOf("green", "red", "blue")
var colors_2: Array<String?> = arrayOfNulls(3)
var colors_3: Array<String> = emptyArray()

16

Array of Stringsकोटलिन में एक खाली बनाने के लिए आपको निम्नलिखित छह दृष्टिकोणों में से एक का उपयोग करना चाहिए:

पहले दृष्टिकोण:

val empty = arrayOf<String>()

दूसरा तरीका:

val empty = arrayOf("","","")

तीसरा तरीका:

val empty = Array<String?>(3) { null }

चौथा दृष्टिकोण:

val empty = arrayOfNulls<String>(3)

पाँचवाँ दृष्टिकोण:

val empty = Array<String>(3) { "it = $it" }

छठा दृष्टिकोण:

val empty = Array<String>(0, { _ -> "" })

9

वे प्रकार वहाँ हैं ताकि आप प्राथमिकताओं के सरणियों का निर्माण कर सकें, न कि बॉक्सिंग प्रकारों के। चूंकि स्ट्रिंग जावा में एक आदिम नहीं है, आप सिर्फ Array<String>कोटलिन में जावा के बराबर उपयोग कर सकते हैं String[]


5

के लिए Stringsऔर अन्य प्रकार, आप बस का उपयोग करें Array<*>। कारण IntArrayऔर अन्य मौजूद है ऑटोबॉक्सिंग को रोकना।

तो int[]से संबंधित है IntArrayजहां Integer[]से संबंधित है Array<Int>


1

स्ट्रिंग सरणी बनाने के कुछ सामान्य तरीके हैं

  1. var arr = Array (5) {""}

यह खाली स्ट्रिंग होने के लिए प्रारंभिक मानों के साथ 5 स्ट्रिंग्स की एक सरणी बनाएगा।

  1. var गिरफ्तारी = arrayOfNulls <String?>(5)

यह शून्य होने के लिए प्रारंभिक मानों के साथ आकार 5 की एक सरणी बनाएगा। आप सरणी को संशोधित करने के लिए स्ट्रिंग डेटा का उपयोग कर सकते हैं।

  1. var arr = arrayOf ("शून्य", "एक", "दो", "तीन")

जब आप पहले से ही सरणी की सामग्री को जानते हैं तो आप सीधे सरणी को इनिशियलाइज़ कर सकते हैं।

  1. तार के एक बहु आयामी सरणी बनाने के लिए एक आसान तरीका भी है।

    var मैट्रिक्स = ऐरे (5) {ऐरे (6) {""}}

    यह है कि आप कैसे 5 स्ट्रिंग और 6 कॉलम के साथ एक मैट्रिक्स बना सकते हैं जिसमें खाली स्ट्रिंग के शुरुआती मान हैं।


0

यह उदाहरण एंड्रॉइड में पूरी तरह से काम करता है

कोटलिन में आप इसके लिए लैम्बडा एक्सप्रेशन का उपयोग कर सकते हैं। कोटलीन ऐरे कंस्ट्रक्टर की परिभाषा है:

Array(size: Int, init: (Int) -> T)

जो मूल्यांकन करता है:

skillsSummaryDetailLinesArray = Array(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

या:

skillsSummaryDetailLinesArray = Array<String>(linesLen) {
        i: Int -> skillsSummaryDetailLines!!.getString(i)
}

इस उदाहरण में क्षेत्र की परिभाषा थी:

private var skillsSummaryDetailLinesArray: Array<String>? = null

उम्मीद है की यह मदद करेगा


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