Kotlin 定义数据类的集合

Kotlin 定义数据类的集合,kotlin,Kotlin,如果我有下面的数据类 data class User(val name: String = "", val age: Int = 0) 如何定义它的集合,例如: var user = User [] // this is not working 我需要能够通过以下方式呼叫用户: user[0].name // something like this! 你在科特林是这样做的: val array = arrayOf(User("name1"), User("name2")) 如果要在不立即

如果我有下面的数据类

data class User(val name: String = "", val age: Int = 0)
如何定义它的集合,例如:

var user = User [] // this is not working
我需要能够通过以下方式呼叫用户:

user[0].name // something like this!

你在科特林是这样做的:

val array = arrayOf(User("name1"), User("name2"))
如果要在不立即添加元素的情况下创建数组,请使用

val arrayList = ArrayList<User>()
val arrayList=arrayList()
在这种情况下,您必须明确地指定元素类型,因为没有任何东西可以推断它

从:

提供一个可变列表实现,该实现使用 可调整大小的阵列作为其备份存储

以不同方式在Kotlin中定义列表集合:
  • 具有不可变(只读)列表的不可变变量:

    val users: List<User> = listOf( User("Tom", 32), User("John", 64) )
    
    val users: MutableList<User> = mutableListOf( User("Tom", 32), User("John", 64) )
    
    var users: List<User> = listOf( User("Tom", 32), User("John", 64) )
    
    var users: MutableList<User> = mutableListOf( User("Tom", 32), User("John", 64) )
    
    或无初始值-空列表且无显式变量类型:

    val users = mutableListOf<User>()
    //or
    val users = ArrayList<User>()
    
    var users = emptyList<User>()
    
    var users = emptyList<User>().toMutableList()
    //or
    var users = ArrayList<User>()
    
    或无初始值-空列表且无显式变量类型:

    val users = mutableListOf<User>()
    //or
    val users = ArrayList<User>()
    
    var users = emptyList<User>()
    
    var users = emptyList<User>().toMutableList()
    //or
    var users = ArrayList<User>()
    
    var users=emptyList().toMutableList()
    //或
    var users=ArrayList()
    
    • 注意:您可以将项目添加到列表中:
      • users.add(anohterUser)
      • 但不使用
        users+=其他用户
        错误:Kotlin:赋值运算符歧义:
        公共运算符fun Collection.plus(元素:字符串):在kotlin.collections中定义的列表
        @InlineOnly公共内联运算符fun MutableCollection.plusSign(元素:字符串):在kotlin.collections中定义的单位


另见:

@OliverCharlesworth我读过它,但不明白如何将它与
数据类一起使用,与普通类没有区别->例如
MutableList()
如果我的初始值未知,
var supply=ArrayList()
好吗?@HasanAYousef是的。(
var supply=ArrayList()