如何通过提供大小在Kotlin中创建一个像Java一样的数组?

时间:2016-02-07 12:18:11

标签: java arrays arraylist kotlin

如何像在java中一样创建数组?

int A[] = new int[N];

我怎么能在Kotlin做到这一点?

4 个答案:

答案 0 :(得分:101)

根据reference,数组按以下方式创建:

  • 对于Java的原始类型,存在不同类型IntArrayDoubleArray等,它们存储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)
    

    第一个与Java相似,它只是创建一个填充了默认值的原始数组,例如: Int为零,falseBoolean

  • 非原始数组由Array<T>类表示,其中T是项类型。

    T仍然可以是Java中的一种类型基元(IntBoolean,...),但其中的值将与Java的Integer等效。 ,Double等等。

    此外,T可以是String 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 }

    这些是以类似的方式创建的:

    Retrofit

答案 1 :(得分:1)

在Kotlin中,创建大小为N的IntArray很简单。使用IntArray(n)或适当的类型,如热键答案中详细说明的那样。

使用固定大小的数组时,可以使用Kotlin Destructuring

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

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

在这种情况下,x将从索引0中获取,y从索引1中获取,等等。

答案 2 :(得分:1)

这是字符串数组初始化的简单示例

        var names = Array<String>(<AnotherArray.size>) { i -> "" }

科特林 doc

答案 3 :(得分:-1)

val A = FloatArray(N) //N 是 ar 的大小