重写map的put方法
时间: 2023-07-29 07:05:47 浏览: 139
Java Map 在put值时value值不被覆盖的解决办法
在 Java 中,Map 接口是一个键值对的集合,它提供了添加、删除和查找键值对的方法。Map 接口有多种实现,如 HashMap、TreeMap 和 LinkedHashMap 等。
以下是重写 Map 的 put 方法的示例代码,该代码演示了如何向一个自定义的 Map 实现中添加键值对:
```java
public class MyMap<K, V> implements Map<K, V> {
private List<Entry<K, V>> entries;
public MyMap() {
entries = new ArrayList<>();
}
@Override
public V put(K key, V value) {
for (Entry<K, V> entry : entries) {
if (entry.getKey().equals(key)) {
V oldValue = entry.getValue();
entry.setValue(value);
return oldValue;
}
}
entries.add(new SimpleEntry<>(key, value));
return null;
}
// 其他方法实现
}
```
这里,我们创建了一个 MyMap 类,实现了 Map 接口。在 put 方法中,我们遍历当前 Map 中的所有键值对,如果找到了相同的键,则替换原来的值并返回旧值。如果没有找到相同的键,则添加新的键值对,并返回 null。
需要注意的是,这个实现并没有考虑到线程安全性,如果需要在多线程环境下使用,需要进行额外的处理。
阅读全文