我看到Kotlin有ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray
,这相当于Java中的byte[], short[], int[],char[], double[], float[]
。什么是Java的String []的Kotlin等价物?
现在我想知道,是否有任何StringArray
相当于Java的String[]
?
我看到Kotlin有ByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArray
,这相当于Java中的byte[], short[], int[],char[], double[], float[]
。什么是Java的String []的Kotlin等价物?
现在我想知道,是否有任何StringArray
相当于Java的String[]
?
有用于String
没有特殊情况,因为String
是JVM上的一个普通的引用类型,相反与Java primitives (int
, double
, ...) - 它们存储在参考Array<T>
需要boxing them into objects like Integer
and Double
。 Kotlin中的IntArray
等专用阵列的目的是存储非盒装原语,摆脱装箱和拆箱开销(与Java int[]
相同,而不是Integer[]
)。
可以使用(对于nullables和Array<String?>
)Array<String>
,这相当于String[]
在Java中:
val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")
这些类型有那么您可以创建的图元的阵列,而不是盒装的类型。由于String不是Java中的原语,因此您可以在Kotlin中使用Array<String>
作为Java String[]
的等效项。
对于Strings
和其他类型,您只需使用Array<*>
。 原因IntArray
和其他存在是为了防止自动装箱。
因此int[]
涉及IntArray
其中Integer[]
涉及Array<Int>
。
'typealias字符串数组=阵列') –
marstran