如何初始化';可变地图';来自kotlin中数据类的构造函数?
我有一个如何初始化';可变地图';来自kotlin中数据类的构造函数?,kotlin,data-class,Kotlin,Data Class,我有一个数据类,它有一个构造函数如下(): 你能给我: [A, B, C] 我想进一步修改我的数据类,如下所示: data class MyDataClass ( val myArr: ArrayList<Char>, val myMap: MutableMap<Char, MutableMap<String, String>> ) { constructor(n: Int): this( Array
数据类
,它有一个构造函数
如下():
你能给我:
[A, B, C]
我想进一步修改我的数据类
,如下所示:
data class MyDataClass (
val myArr: ArrayList<Char>,
val myMap: MutableMap<Char, MutableMap<String, String>>
) {
constructor(n: Int):
this(
ArrayList((0 until n).map { ('A' + it).toChar() }),
mutableMapOf()
)
}
data class Thingamajigg(val n: Int) {
val myArr: ArrayList<Char> = arrayListOf()
val myMap: MutableMap<Char, MutableMap<String, String>> = mutableMapOf()
init {
(0..n).forEach { myArr.add('A' + it) }
myArr.forEach { myMap[it] = mutableMapOf() }
}
}
我得到:
{}
现在,我想要的不是为myMap
获取一个空的MutableMap
,而是一个MutableMap
,如下所示:
data class MyDataClass (
val myArr: ArrayList<Char>,
val myMap: MutableMap<Char, MutableMap<String, String>>
) {
constructor(n: Int):
this(
ArrayList((0 until n).map { ('A' + it).toChar() }),
mutableMapOf()
)
}
data class Thingamajigg(val n: Int) {
val myArr: ArrayList<Char> = arrayListOf()
val myMap: MutableMap<Char, MutableMap<String, String>> = mutableMapOf()
init {
(0..n).forEach { myArr.add('A' + it) }
myArr.forEach { myMap[it] = mutableMapOf() }
}
}
我该怎么做?您可以执行以下操作之一:
数据类MyDataClass(
val myArr:ArrayList,
val myMap:MutableMap
) {
构造函数(n:Int):这个(
ArrayList(foo(n)),
foo(n).map{it to mutableMapOf()}.toMap().toMutableMap()
)
伴星{
fun-foo(n:Int)=(0到n.map{('A'+it)}
}
}
数据类MyDataClass(
val myArr:ArrayList,
val myMap:MutableMap
) {
构造函数(n:Int):这个(ArrayList((0到n).map{('A'+it)}))
构造函数(列表:ArrayList):此(
列表
list.map{it to mutableMapOf()}.toMap().toMutableMap()
)
}
您可以执行以下操作之一:
数据类MyDataClass(
val myArr:ArrayList,
val myMap:MutableMap
) {
构造函数(n:Int):这个(
ArrayList(foo(n)),
foo(n).map{it to mutableMapOf()}.toMap().toMutableMap()
)
伴星{
fun-foo(n:Int)=(0到n.map{('A'+it)}
}
}
数据类MyDataClass(
val myArr:ArrayList,
val myMap:MutableMap
) {
构造函数(n:Int):这个(ArrayList((0到n).map{('A'+it)}))
构造函数(列表:ArrayList):此(
列表
list.map{it to mutableMapOf()}.toMap().toMutableMap()
)
}
我不确定我是否完全理解选择构造函数参数背后的原因,但我想说的是,您只需要一个构造函数,因为所有内容都是从显式构造函数中的int
参数构建的。从这里开始,我将简化代码,如下所示:
data class MyDataClass (
val myArr: ArrayList<Char>,
val myMap: MutableMap<Char, MutableMap<String, String>>
) {
constructor(n: Int):
this(
ArrayList((0 until n).map { ('A' + it).toChar() }),
mutableMapOf()
)
}
data class Thingamajigg(val n: Int) {
val myArr: ArrayList<Char> = arrayListOf()
val myMap: MutableMap<Char, MutableMap<String, String>> = mutableMapOf()
init {
(0..n).forEach { myArr.add('A' + it) }
myArr.forEach { myMap[it] = mutableMapOf() }
}
}
数据类Thingamajigg(val n:Int){
val myArr:ArrayList=arrayListOf()
val myMap:MutableMap=mutableMapOf()
初始化{
(0..n).forEach{myArr.add('A'+it)}
myArr.forEach{myMap[it]=mutableMapOf()}
}
}
这是否符合您的需要?我不确定我是否完全理解选择构造函数参数背后的原因,但我想说您只需要一个构造函数,因为所有内容都是从显式构造函数中的
int
参数构建的。从这里开始,我将简化代码,如下所示:
data class MyDataClass (
val myArr: ArrayList<Char>,
val myMap: MutableMap<Char, MutableMap<String, String>>
) {
constructor(n: Int):
this(
ArrayList((0 until n).map { ('A' + it).toChar() }),
mutableMapOf()
)
}
data class Thingamajigg(val n: Int) {
val myArr: ArrayList<Char> = arrayListOf()
val myMap: MutableMap<Char, MutableMap<String, String>> = mutableMapOf()
init {
(0..n).forEach { myArr.add('A' + it) }
myArr.forEach { myMap[it] = mutableMapOf() }
}
}
数据类Thingamajigg(val n:Int){
val myArr:ArrayList=arrayListOf()
val myMap:MutableMap=mutableMapOf()
初始化{
(0..n).forEach{myArr.add('A'+it)}
myArr.forEach{myMap[it]=mutableMapOf()}
}
}
这符合你的需要吗?那么你想要一张地图地图吗?是的,
myArr
的所有数组项都应该是它的键(0到n)。将{('a'+it)映射到mutableMapOf()}.toMutableMap()
那么你想要一张地图地图吗?是的,myArr
的所有数组项都应该是它的键(0到n)。将{('a'+it)映射到mutableMapOf()}.toMutableMap()
什么是对象映射()
?您的代码在()@AkshdeepSingh不起作用,很抱歉这是我的env上的.toMap().toMutableMap()
什么是toObjectMap()
?您的代码在()@AkshdeepSingh不起作用,很抱歉这是我的env上的一个快捷方式,用于.toMap().toMutableMap()
原因是我不需要每次都只从int
param构建好的,我认为您可以根据需要调整我的代码,应该足够简单。如果您需要我编辑它,请告诉我:)原因是我不需要每次仅从int
param构建好的,我认为您可以根据您的需要调整我的代码,应该足够简单。如果需要我编辑,请告诉我:)
data class Thingamajigg(val n: Int) {
val myArr: ArrayList<Char> = arrayListOf()
val myMap: MutableMap<Char, MutableMap<String, String>> = mutableMapOf()
init {
(0..n).forEach { myArr.add('A' + it) }
myArr.forEach { myMap[it] = mutableMapOf() }
}
}