在Java中,数组可以这样初始化:

int numbers[] = new int[] {10, 20, 30, 40, 50}

Kotlin的数组初始化是怎样的?


当前回答

在Java中,数组可以这样初始化:

int numbers[] = new int[] {10, 20, 30, 40, 50}

但是在Kotlin中,数组初始化的方式有很多,比如:

任何泛型类型的数组都可以使用arrayOf()函数:

val arr = arrayOf(10, 20, 30, 40, 50)

val genericArray = arrayOf(10, "Stack", 30.00, 40, "Fifty")

使用Kotlin的实用函数可以初始化数组

val intArray = intArrayOf(10, 20, 30, 40, 50)

其他回答

在Kotlin中有几种方法。

var arr = IntArray(size) // construct with only size

然后从用户或其他集合或任何你想要的地方获取初始值。

var arr = IntArray(size){0}  // construct with size and fill array with 0
var arr = IntArray(size){it} // construct with size and fill with its index

我们也可以用内置函数创建数组,比如-

var arr = intArrayOf(1, 2, 3, 4, 5) // create an array with 5 values

另一种方式

var arr = Array(size){0} // it will create an integer array
var arr = Array<String>(size){"$it"} // this will create array with "0", "1", "2" and so on.

你也可以使用doubleArrayOf()或DoubleArray()或任何基本类型来代替Int。

Kotlin有专门的类来表示基本类型的数组,没有装箱开销。例如- IntArray, ShortArray, ByteArray等。我需要说明,这些类与父Array类没有继承关系,但它们具有相同的方法和属性集。它们中的每一个都有相应的工厂函数。所以,要在Kotlin中初始化一个数组,你只需要键入以下内容:

val myArr: IntArray = intArrayOf(10, 20, 30, 40, 50)

...或者这样:

val myArr = Array<Int>(5, { i -> ((i + 1) * 10) })

myArr.forEach { println(it) }                            // 10, 20, 30, 40, 50

现在你可以使用它:

myArr[0] = (myArr[1] + myArr[2]) - myArr[3]

在我的情况下,我需要初始化我的抽屉项目。我通过以下代码填充数据。

    val iconsArr : IntArray = resources.getIntArray(R.array.navigation_drawer_items_icon)
    val names : Array<String> = resources.getStringArray(R.array.navigation_drawer_items_name)


    // Use lambda function to add data in my custom model class i.e. DrawerItem
    val drawerItems = Array<DrawerItem>(iconsArr.size, init = 
                         { index -> DrawerItem(iconsArr[index], names[index])})
    Log.d(LOGGER_TAG, "Number of items in drawer is: "+ drawerItems.size)

自定义模型类-

class DrawerItem(var icon: Int, var name: String) {

}

在全局声明int array

var numbers= intArrayOf()

方法用value初始化数组

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    //create your int array here
    numbers= intArrayOf(10,20,30,40,50)
}

在Java中,数组可以这样初始化:

int numbers[] = new int[] {10, 20, 30, 40, 50}

但是在Kotlin中,数组初始化的方式有很多,比如:

任何泛型类型的数组都可以使用arrayOf()函数:

val arr = arrayOf(10, 20, 30, 40, 50)

val genericArray = arrayOf(10, "Stack", 30.00, 40, "Fifty")

使用Kotlin的实用函数可以初始化数组

val intArray = intArrayOf(10, 20, 30, 40, 50)