androidint数组初始化,如何使⽤值初始化Kotlin中的数组?如何使⽤值初始化Kotlin中的数组?
在Java中,可以初始化数组,例如:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的阵列初始化如何?
Lars Blumberg asked 2019-05-16T16:15:06Z
14个解决⽅案
166 votes
val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)
有关详细信息,请参阅Kotlin - 基本类型。
Maroun answered 2019-05-16T16:15:17Z
42 votes
值得⼀提的是,当使⽤kotlin内置函数(例如intArrayOf(),longArrayOf(),arrayOf()等)时,您⽆法使⽤默认值(或所有值到所需值)初始化给定⼤⼩的数组,⽽是需要通过调⽤根据调⽤初始化 类构造函数。
// Array of integers of a size of N
val arr = IntArray(N)
// Array of integers of a size of N initialized with a default value of 2
val arr = IntArray(N) { i -> 2 }
vtor answered 2019-05-16T16:15:44Z
37 votes
这是⼀个例⼦:
fun main(args: Array) {
val arr = arrayOf(1, 2, 3);
for (item in arr) {
println(item);
}
}
您还可以使⽤游乐场来测试语⾔功能。
shadeglare answered 2019-05-16T16:16:12Z
24 votes
在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 * 1 } ) // 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(size, { "$it" } ) // this will create array with "0", "1", "2" and so on.
您也可以使⽤doubleArrayOf()或DoubleArray()或任何基本类型⽽不是Int。
HM Nayem answered 2019-05-16T16:17:09Z
9 votes
在Kotlin中,我们可以使⽤arrayOf(),intArrayOf(),charArrayOf(),booleanArrayOf(),longArrayOf()函数创建阵列。例如:
var Arr1 = arrayOf(1,10,4,6,15)
var Arr2 = arrayOf(1,10,4,6,15)
var Arr3 = arrayOf("Surat","Mumbai","Rajkot")
var Arr4 = arrayOf(1,10,4, "Ajay","Prakesh")
var Arr5: IntArray = intArrayOf(5,10,15,20)
RS Patel answered 2019-05-16T16:17:38Z
5 votes
⽼问题,但如果您想使⽤范围:
var numbers: IntArray = IntRange(10, 50).step(10).toList().toIntArray()
产量⼏乎与以下结果相同:
var numbers = Array(5, { i -> i*10 + 10 })
结果:10,20,30,40,50
我认为第⼀个选项更具可读性。 两者都有效。
Brooks DuBois answered 2019-05-16T16:18:32Z
3 votes
你可以使⽤这种⽅法
var numbers=Array(size,init)
var numbers=IntArray(size,init)
var numbers= intArrayOf(1,2,3)
var numbers = Array(5, { i -> 0 })
init表⽰默认值(初始化)
Ali hasan answered 2019-05-16T16:19:11Z
3 votes
我认为有⼀点值得⼀提并且⽂档中不够直观的是,当您使⽤⼯⼚函数创建数组并指定它的⼤⼩时,数组将使⽤等于其索引值的值进⾏初始化。 例如,在这样的数组中:val array = Array(5, { i -> i }),分配的初始值是[0,1,2,3,4]⽽不是说,[0,0,0,0,0]。这就是为什么从⽂档中,val asc = Array(5, { i -> (i * i).toString() })产⽣答案["0", "1", "4", "9", "16"]
Alf Moh answered 2019-05-16T16:19:44Z
3 votes
您可以像这样创建⼀个Int数组:
val numbers = IntArray(5, { 10 * (it + 1) })
5是Int Array⼤⼩。 lambda函数是元素init函数。 '它'在[0,4]范围内,加上[1,5]中的1个范围
起源功能是:
/**
* An array of ints. When targeting the JVM, instances of this class are
* represented as `int[]`.
* @constructor Creates a new array of the specified [size], with all elements
* initialized to zero.
*/
public class IntArray(size: Int) {
/**
* Creates a new array of the specified [size], where each element is
* calculated by calling the specified
* [init] function. The [init] function returns an array element given
* its index.
*/
public inline constructor(size: Int, init: (Int) -> Int)
...
定义数组初始化
}
Arrays.kt中定义的IntArray类
zyc zyc answered 2019-05-16T16:20:36Z
2 votes
你可以试试这个:
var a = Array(5){0}
kulst answered 2019-05-16T16:21:01Z
2 votes
您可以简单地使⽤现有的标准库⽅法,如下所⽰:
val numbers = intArrayOf(10, 20, 30, 40, 50)
但是使⽤特殊的构造函数可能有意义:
val numbers2 = IntArray(5) { (it + 1) * 10 }
您传递⼀个描述如何初始化值的⼤⼩和lambda。 这是⽂档:
/**
* Creates a new array of the specified [size], where each element is calculated by calling the specified * [init] function. The [init] function returns an array element given its index.
*/
public inline constructor(size: Int, init: (Int) -> Int)
s1m0nw1 answered 2019-05-16T16:21:46Z
1 votes
在我的情况下,我需要初始化我的抽屉物品。 我通过下⾯的代码填写数据。
val iconsArr : IntArray = IntArray(R.array.navigation_drawer_items_icon)
val names : Array = StringArray(R.array.navigation_drawer_items_name)
// Use lambda function to add data in my custom model DrawerItem
val drawerItems = Array(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) {
}
Rahul answered 2019-05-16T16:22:22Z
1 votes
在global处声明int数组
var numbers= intArrayOf()
next onCreate⽅法⽤值初始化数组
override fun onCreate(savedInstanceState: Bundle?) {
setContentView(R.layout.activity_main)
//create your int array here
numbers= intArrayOf(10,20,30,40,50)
}
Nihal Desai answered 2019-05-16T16:23:03Z
0 votes
以这种⽅式初始化数组:val paramValueList : Array = arrayOfNulls(5)
Abhilash Das answered 2019-05-16T16:23:35Z

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。