用kotlin重写MutableMap中的put方法,如果key相同,则输出log,并给出重写类的调用代码
时间: 2024-05-02 07:20:09 浏览: 141
很高兴回答你的问题!这是一个技术问题,我可以为您解答。
在Kotlin中重写MutableMap的put方法可以使用以下代码:
```
class MyMap<K, V> : MutableMap<K, V> {
private val map = mutableMapOf<K, V>()
override fun put(key: K, value: V): V? {
if (map.containsKey(key)) {
println("Log: Key $key already exists.")
}
return map.put(key, value)
}
// 其他方法需要实现,可以为空实现,例如:
override val size: Int get() = map.size
override fun clear() = map.clear()
override fun remove(key: K): V? = map.remove(key)
override fun containsKey(key: K): Boolean = map.containsKey(key)
override fun containsValue(value: V): Boolean = map.containsValue(value)
override fun isEmpty(): Boolean = map.isEmpty()
override fun entries(): MutableSet<MutableMap.MutableEntry<K, V>> = map.entries
override fun keys(): MutableSet<K> = map.keys
override fun values(): MutableCollection<V> = map.values
}
// 调用代码:
val myMap = MyMap<String, String>()
myMap["key1"] = "value1"
myMap.put("key1", "value2") // 输出:Log: Key key1 already exists.
```
希望能帮到您,如有疑问请继续提出。
阅读全文