use*_*518 3 java android kotlin
我有一个Java HashMap填充为
HashMap<String, Integer> myMMap = new HashMap<String, Integer>();
for (int i = 0; i < objects.size(); ++i) {
myMap.put(objects.get(i), i);
}
Run Code Online (Sandbox Code Playgroud)
而我正试图将其转换为Kotlin.我尝试了下面的方法,但我得到了空值.
var myMap : HashMap<String, Int>? = null
for (i in objects){
//myMap?.put(i, objects.indexOf(i))
myMap?.put("sample", 3)
System.out.println("myMapInForLoop" + myMap)
}
Run Code Online (Sandbox Code Playgroud)
它打印I/System.out: myMapInForLoopnull.
我尝试过使用hashMapOf函数,但它只允许1个值,所以我不能把它放进去myMap.
您可以HashMap直接实例化.而不是for循环,您可以使用forEachIndexed例如(如果objects是Array或Iterable).
val myMap = HashMap<String, Int>()
objects.forEachIndexed { index, item ->
myMap.put(item, index)
System.out.println("myMapInForLoop" + myMap)
}
Run Code Online (Sandbox Code Playgroud)
在您获得的代码版本中null,因为您将其分配给myMap.此外,您可能只有一个值,因为您只设置了一个"sample"用于测试的密钥.
| 归档时间: |
|
| 查看次数: |
4265 次 |
| 最近记录: |