HashMap kotlin 中的 ArrayList
ArrayList in HashMap kotlin
如何在HashMap中的ArrayList中添加一些值?我的波纹管代码显示 0 大小的散列
val hash= HashMap<String, ArrayList<String> >()
hash["bro"]?.add("Ali Umar")
hash["sis"]?.add("Tamanna")
hash["bro"]?.add("Faruk")
hash["sis"]?.add("Aklima")
hash["bro"]?.add("Ab Siddik")
Log.d("Hash", hash.size.toString())
您必须先初始化 List
并将键和已初始化 List
放入 HashMap
中,然后才能将更多项添加到键的值中。在您的示例代码中,HashMap
中没有任何内容,也无法添加任何内容。
像这样尝试(或类似)
fun main() {
// initialize the hashmap
val hash = hashMapOf<String, MutableList<String>>()
// put the keys with empty lists into the hashmap
hash.put("bro", mutableListOf())
hash.put("sis", mutableListOf())
// add items to the value (the list) of existing keys
hash.get("bro")?.add("Ali Umar")
hash.get("sis")?.add("Tamanna")
hash.get("bro")?.add("Faruk")
hash.get("sis")?.add("Aklima")
hash.get("bro")?.add("Ab Siddik")
// print size and content
println("Hash size is ${hash.size.toString()}")
println(hash)
}
在 Kotlin Playground 中输出
Hash size is 2
{sis=[Tamanna, Aklima], bro=[Ali Umar, Faruk, Ab Siddik]}
问题是下面的指令只是从 hashmap 中读取而不是插入任何东西
hash["bro"]
hash["sis"]
所以当你用 val hash= HashMap<String, ArrayList<String> >()
创建你的 hashmap 时它是空的并且“bro”和“sis”不存在。所以它是 null 并且不会调用 add 函数,因为 ?.
如果值为 null 则跳过执行。
因此,要向兄弟姐妹添加一些内容,您首先必须将值放入哈希图中。
hash.put("bro",ArrayList<String>())
hash.put("sis",ArrayList<String>())
这会将您的示例更改如下
val hash= HashMap<String, ArrayList<String> >()
hash.put("bro",ArrayList<String>())
hash.put("sis",ArrayList<String>())
hash["bro"]?.add("Ali Umar")
hash["sis"]?.add("Tamanna")
hash["bro"]?.add("Faruk")
hash["sis"]?.add("Aklima")
hash["bro"]?.add("Ab Siddik")
Log.d("Hash", hash.size.toString())
如何在HashMap中的ArrayList中添加一些值?我的波纹管代码显示 0 大小的散列
val hash= HashMap<String, ArrayList<String> >()
hash["bro"]?.add("Ali Umar")
hash["sis"]?.add("Tamanna")
hash["bro"]?.add("Faruk")
hash["sis"]?.add("Aklima")
hash["bro"]?.add("Ab Siddik")
Log.d("Hash", hash.size.toString())
您必须先初始化 List
并将键和已初始化 List
放入 HashMap
中,然后才能将更多项添加到键的值中。在您的示例代码中,HashMap
中没有任何内容,也无法添加任何内容。
像这样尝试(或类似)
fun main() {
// initialize the hashmap
val hash = hashMapOf<String, MutableList<String>>()
// put the keys with empty lists into the hashmap
hash.put("bro", mutableListOf())
hash.put("sis", mutableListOf())
// add items to the value (the list) of existing keys
hash.get("bro")?.add("Ali Umar")
hash.get("sis")?.add("Tamanna")
hash.get("bro")?.add("Faruk")
hash.get("sis")?.add("Aklima")
hash.get("bro")?.add("Ab Siddik")
// print size and content
println("Hash size is ${hash.size.toString()}")
println(hash)
}
在 Kotlin Playground 中输出
Hash size is 2
{sis=[Tamanna, Aklima], bro=[Ali Umar, Faruk, Ab Siddik]}
问题是下面的指令只是从 hashmap 中读取而不是插入任何东西
hash["bro"]
hash["sis"]
所以当你用 val hash= HashMap<String, ArrayList<String> >()
创建你的 hashmap 时它是空的并且“bro”和“sis”不存在。所以它是 null 并且不会调用 add 函数,因为 ?.
如果值为 null 则跳过执行。
因此,要向兄弟姐妹添加一些内容,您首先必须将值放入哈希图中。
hash.put("bro",ArrayList<String>())
hash.put("sis",ArrayList<String>())
这会将您的示例更改如下
val hash= HashMap<String, ArrayList<String> >()
hash.put("bro",ArrayList<String>())
hash.put("sis",ArrayList<String>())
hash["bro"]?.add("Ali Umar")
hash["sis"]?.add("Tamanna")
hash["bro"]?.add("Faruk")
hash["sis"]?.add("Aklima")
hash["bro"]?.add("Ab Siddik")
Log.d("Hash", hash.size.toString())