以编程方式创建数组
To create an array programmatically
我想以编程方式创建一个数组,如下所示使用 Kotlin。我对 Java、Kotlin 和 Android 了解不多。这可能吗?
val list1 = mutableListOf<String>()
// val array1 = arrayOf<String>()
for (i in 0 until 6) {
list1.add(i, "\"$i\"")
}
println(list1)
输出:["0", "1", "2", "3", "4", "5"]
我能否转换可变列表或 ArrayList,以创建字符串数组,例如 ["0", "1", "2", "3", "4", "5"]
?
这是为 AlertDialog 创建数组。
val m = item_type
var n = m - 1
var item_max = 0
when(TextView.text) {
"Title 1" -> {
item_type_from_list = item_type_list[n]
}
}
val itemTypes = generateArray(1, item_type_from_list) // Function to
// create desired array
/*val itemTypes = arrayOf<String>(
"1",
"2",
"3",
"4",
"5"
*/
val mBuilder = AlertDialog.Builder(requireContext())
mBuilder.setTitle("${TextView.text}")
mBuilder.setSingleChoiceItems(itemTypes, selectedItems1[0]) { dialog, i
->
selectedItems1[0] = i
var item_type_selected = selectedItems1[0]
dialog.dismiss()
}
val mDialog = mBuilder.create()
mDialog.show()
您还可以建议我可以做的任何替代方案吗?
val list1 : ArrayList<String> = arrayListOf()
然后您可以像这样添加元素:
for (i in 0 until 6) {
list1.add(i.toString())
}
对于您的 AlertDialog,您可以使用以下内容:
mBuilder.setSingleChoiceItems(list1.toTypedArray(), selectedItems1[0]) { dialog, i ->
selectedItems1[0] = i
var item_type_selected = selectedItems1[0]
dialog.dismiss()
}
val mDialog = mBuilder.create()
mDialog.show()
结果如下:
val list1= mutableListOf<String>()
val array:Array<String> = list1.toTypedArray()
现在,打印它们的元素的结果是相同的,但是,list1
是一个 List
,而 array
是一个 Array
如果你只想生成一个数组:
val array = Array(6) { "$it" }
创建一个包含 6 个元素的数组,lambda 是初始化函数,它获取传入的当前元素的索引。所以我只是在这里将其转换为字符串。或者您可以根据需要使用函数引用,可能更清楚:
val array = Array(6, Int::toString)
要将列表转换为数组,请使用 toTypedArray
函数。您可以按照与上述相同的方式创建列表,顺便说一句:
// or MutableList
val list = List(6) { "$it" }
val array = list.toTypedArray()
或者作为更一般的情况(这里不是最好的主意,但它是您可以通过一系列转换生成任意集合的方式):
val nums = (0..5).map { "$it" }.toTypedArray()
另外,以防万一你不知道,有特殊的数组类型来表示基元数组:
val integers = Array(6) { it }
val ints = IntArray(6) { it }
首先在后台创建一个 Integer[]
数组类型,它是 Integer
对象的数组。第二个创建一个 int[]
,它是一个 int
基元数组,并且效率更高。只是一些需要注意的事情,以防它很重要!
我想以编程方式创建一个数组,如下所示使用 Kotlin。我对 Java、Kotlin 和 Android 了解不多。这可能吗?
val list1 = mutableListOf<String>()
// val array1 = arrayOf<String>()
for (i in 0 until 6) {
list1.add(i, "\"$i\"")
}
println(list1)
输出:["0", "1", "2", "3", "4", "5"]
我能否转换可变列表或 ArrayList,以创建字符串数组,例如 ["0", "1", "2", "3", "4", "5"]
?
这是为 AlertDialog 创建数组。
val m = item_type
var n = m - 1
var item_max = 0
when(TextView.text) {
"Title 1" -> {
item_type_from_list = item_type_list[n]
}
}
val itemTypes = generateArray(1, item_type_from_list) // Function to
// create desired array
/*val itemTypes = arrayOf<String>(
"1",
"2",
"3",
"4",
"5"
*/
val mBuilder = AlertDialog.Builder(requireContext())
mBuilder.setTitle("${TextView.text}")
mBuilder.setSingleChoiceItems(itemTypes, selectedItems1[0]) { dialog, i
->
selectedItems1[0] = i
var item_type_selected = selectedItems1[0]
dialog.dismiss()
}
val mDialog = mBuilder.create()
mDialog.show()
您还可以建议我可以做的任何替代方案吗?
val list1 : ArrayList<String> = arrayListOf()
然后您可以像这样添加元素:
for (i in 0 until 6) {
list1.add(i.toString())
}
对于您的 AlertDialog,您可以使用以下内容:
mBuilder.setSingleChoiceItems(list1.toTypedArray(), selectedItems1[0]) { dialog, i ->
selectedItems1[0] = i
var item_type_selected = selectedItems1[0]
dialog.dismiss()
}
val mDialog = mBuilder.create()
mDialog.show()
结果如下:
val list1= mutableListOf<String>()
val array:Array<String> = list1.toTypedArray()
现在,打印它们的元素的结果是相同的,但是,list1
是一个 List
,而 array
是一个 Array
如果你只想生成一个数组:
val array = Array(6) { "$it" }
创建一个包含 6 个元素的数组,lambda 是初始化函数,它获取传入的当前元素的索引。所以我只是在这里将其转换为字符串。或者您可以根据需要使用函数引用,可能更清楚:
val array = Array(6, Int::toString)
要将列表转换为数组,请使用 toTypedArray
函数。您可以按照与上述相同的方式创建列表,顺便说一句:
// or MutableList
val list = List(6) { "$it" }
val array = list.toTypedArray()
或者作为更一般的情况(这里不是最好的主意,但它是您可以通过一系列转换生成任意集合的方式):
val nums = (0..5).map { "$it" }.toTypedArray()
另外,以防万一你不知道,有特殊的数组类型来表示基元数组:
val integers = Array(6) { it }
val ints = IntArray(6) { it }
首先在后台创建一个 Integer[]
数组类型,它是 Integer
对象的数组。第二个创建一个 int[]
,它是一个 int
基元数组,并且效率更高。只是一些需要注意的事情,以防它很重要!