Maps 如何在Kotlin中使用地图
下面的代码正在创建一个名为Maps 如何在Kotlin中使用地图,maps,kotlin,Maps,Kotlin,下面的代码正在创建一个名为nameTable的新映射,然后向其中添加一个名为example的条目,然后尝试打印该值的name属性 当我运行它时,plus操作似乎没有像我想象的那样向地图添加新条目 那么我做错了什么 class Person(name1: String, lastName1: String, age1: Int){ var name: String = name1 var lastName: String = lastName1 var age: Int =
nameTable
的新映射,然后向其中添加一个名为example的条目,然后尝试打印该值的name属性
当我运行它时,plus操作似乎没有像我想象的那样向地图添加新条目
那么我做错了什么
class Person(name1: String, lastName1: String, age1: Int){
var name: String = name1
var lastName: String = lastName1
var age: Int = age1
}
var nameTable: MutableMap<String, Person> = mutableMapOf()
var example = Person("Josh", "Cohen", 24)
fun main (args: Array<String>){
nameTable.plus(Pair("person1", example))
for(entry in nameTable){
println(entry.value.age)
}
}
class-Person(name1:String,lastName1:String,age1:Int){
变量名称:String=name1
变量lastName:String=lastName1
变量年龄:Int=age1
}
变量nameTable:MutableMap=mutableMapOf()
变量示例=人(“乔希”、“科恩”,24)
趣味主线(args:Array){
nameTable.plus(成对(“person1”,示例))
for(名称表中的条目){
println(entry.value.age)
}
}
当我们在做这项工作时,我想了解一些如何添加、删除和从地图中获取条目的示例。地图上的plus方法创建一个包含新条目的新地图。它不会改变原始贴图。如果要使用此方法,则需要执行以下操作:
fun main() {
val table = nameTable.plus(Pair("person1", example))
for (entry in table) {
println(entry.value.age)
}
}
如果要将条目添加到原始映射,需要使用Java中的put
方法
这将有助于:
fun main() {
nameTable.put("person1", example)
for (entry in nameTable) {
println(entry.value.age)
}
}
要从MutableMap
中获取和删除条目,可以使用以下命令:
nameTable["person1"] // Syntactic sugar for nameTable.get("person1")
nameTable.remove("person1")
造成混淆的原因是,
plus
不是一个变异运算符,这意味着它在(只读)Map
上工作,但不会更改实例本身。这是签名:
operator fun <K, V> Map<out K, V>.plus(pair: Pair<K, V>): Map<K, V>
因此,您的代码可能会被重写(带有一些额外的增强):
class-Person(变量名称:String,变量lastName:String,变量年龄:Int)
val nameTable=mutableMapOf()
val示例=人(“乔希”、“科恩”,24)
趣味主线(args:Array){
nameTable[“person1”]=示例
用于名称表中的((键,值){
println(value.age)
}
}
您必须使用
放
方法
class Person(name1:String, lastName1:String, age1:Int){
var name:String = name1
var lastName:String = lastName1
var age:Int = age1
}
var nameTable:MutableMap<String, Person> = mutableMapOf()
var example = Person("Josh", "Cohen", 24)
fun main (args: Array<String>){
nameTable.put("person1", example)
for(entry in nameTable){
println(entry.value.age)
}
}
class-Person(name1:String,lastName1:String,age1:Int){
变量名称:String=name1
变量lastName:String=lastName1
变量年龄:Int=age1
}
变量nameTable:MutableMap=mutableMapOf()
变量示例=人(“乔希”、“科恩”,24)
趣味主线(args:Array){
nameTable.put(“person1”,示例)
for(名称表中的条目){
println(entry.value.age)
}
}
太麻烦了,您可以直接赋值,如下所示:
@Test
@Throws(Exception::class)
fun main(){
val map:MutableMap<String,Person> = mutableMapOf()
map["Josh"]= Person("Josh", "Cohen", 24)
map.forEach { t, u ->
println("map key:$t,map value:${u.toString()}")
}
}
class Person(name1:String, lastName1:String, age1:Int){
var name:String = name1
var lastName:String = lastName1
var age:Int = age1
override fun toString(): String {
return "name:$name,lastNam:$lastName,age:$age \n"
}
}
@测试
@抛出(异常::类)
主要内容(){
val-map:MutableMap=mutableMapOf()
地图[“乔希”]=人(“乔希”,“科恩”,24)
map.forEach{t,u->
println(“映射键:$t,映射值:${u.toString()}”)
}
}
类人物(name1:String,lastName1:String,age1:Int){
变量名称:String=name1
变量lastName:String=lastName1
变量年龄:Int=age1
重写funtostring():String{
return“name:$name,lastNam:$lastName,age:$age\n”
}
}
顺便说一句,有人知道为什么Kotlin地图上没有操作符fun-minus(key:K)
方法吗?在v1.1中添加了减号操作符
class Person(name1:String, lastName1:String, age1:Int){
var name:String = name1
var lastName:String = lastName1
var age:Int = age1
}
var nameTable:MutableMap<String, Person> = mutableMapOf()
var example = Person("Josh", "Cohen", 24)
fun main (args: Array<String>){
nameTable.put("person1", example)
for(entry in nameTable){
println(entry.value.age)
}
}
@Test
@Throws(Exception::class)
fun main(){
val map:MutableMap<String,Person> = mutableMapOf()
map["Josh"]= Person("Josh", "Cohen", 24)
map.forEach { t, u ->
println("map key:$t,map value:${u.toString()}")
}
}
class Person(name1:String, lastName1:String, age1:Int){
var name:String = name1
var lastName:String = lastName1
var age:Int = age1
override fun toString(): String {
return "name:$name,lastNam:$lastName,age:$age \n"
}
}