加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何防止hashmap或treemap替换以前的值

发布时间:2020-12-15 05:17:29 所属栏目:Java 来源:网络整理
导读:如果已经存在,我如何防止hashmap或treemap替换先前的键值呢?另外,我想抛出异常来通知用户. 解决方法 说实话,任何这样的地图都会违反正常的地图界面.但是如果您愿意这样做,您可以轻松地创建自己的Map实现,该实现委托给另一个地图,但只有在检查现有元素的存在
如果已经存在,我如何防止hashmap或treemap替换先前的键值呢?另外,我想抛出异常来通知用户.

解决方法

说实话,任何这样的地图都会违反正常的地图界面.但是如果您愿意这样做,您可以轻松地创建自己的Map实现,该实现委托给另一个地图,但只有在检查现有元素的存在之后:

public final class NonReplacementMap<K,V> implements Map<K,V> {
    private final Map<K,V> original;

    public NonReplacementMap(Map<K,V> original) {
        this.original = original;
    }

    @Override
    public void put(K key,V value) {
        if (original.containsKey(key)) {
            // Or whatever unchecked exception you want
            throw new IllegalStateException("Key already in map");
        }
        original.put(key,value);
    }

    // etc
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读