我如何在 Kotlin 创建一个数组,就像在 Java 中那样,只提供一个大小?

我怎样才能像在 java 中那样创建 Array 呢?

int A[] = new int[N];

在 Kotlin 我怎么能这么做?

94300 次浏览

According to the 参考文献, arrays are created in the following way:

  • 对于 Java 的基本类型,有不同的类型 IntArrayDoubleArray等,它们存储 没有装箱值。

    They are created with the corresponding constructors and factory functions:

    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为0,falseBoolean

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

    T can still be one of types primitive in Java (Int, Boolean,...), but the values inside will be boxed equivalently to Java's Integer, Double and so on.

    而且,T可以是 nullable and non-null,就像 StringString?一样。

    These are created in a similar way:

    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 }
    

在 Kotlin,创建一个大小为 N 的 IntArray 非常简单。使用 IntArray(n)或适当的类型,如详细的热键的答案。

当使用固定大小的数组时,可以使用 Kotlin 去结构化公司

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


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

在这种情况下,x取自索引0,y取自索引1,等等。

下面是字符串数组的 init 的简单示例

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

Kotlin 医生

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

您可以使用 IntArray创建它,就像下面的变量声明一样 val A = IntArray(N)

如果要创建基本类型的数组,只需使用构造函数:

Example: to create an array of integers with size N.

val arr = IntArray(size = N)

对于非基元类型,可以使用 arrayOfNulls<Type>()