zoukankan      html  css  js  c++  java
  • A SimpleDataStore

    import java.util.HashMap;
    import java.util.Map;
    import java.util.concurrent.ConcurrentHashMap;
    import java.util.concurrent.ConcurrentMap;
    public interface DataStore {
    
        /**
         * return a snapshot value of componentName
         */
        Map<String,Object> get(String componentName);
    
        Object get(String componentName, String key);
    
        void put(String componentName, String key, Object value);
    
        void remove(String componentName, String key);
    
    }
    public class SimpleDataStore implements DataStore {
    
        // <组件类名或标识, <数据名, 数据值>>
        private ConcurrentMap<String, ConcurrentMap<String, Object>> data =
            new ConcurrentHashMap<String, ConcurrentMap<String,Object>>();
    
        public Map<String, Object> get(String componentName) {
            ConcurrentMap<String, Object> value = data.get(componentName);
            if(value == null) return new HashMap<String, Object>();
    
            return new HashMap<String, Object>(value);
        }
    
        public Object get(String componentName, String key) {
            if (!data.containsKey(componentName)) {
                return null;
            }
            return data.get(componentName).get(key);
        }
    
        public void put(String componentName, String key, Object value) {
            Map<String, Object> componentData = data.get(componentName);
            if(null == componentData) {
                data.putIfAbsent(componentName, new ConcurrentHashMap<String, Object>());
                componentData = data.get(componentName);
            }
            componentData.put(key, value);
        }
    
        public void remove(String componentName, String key) {
            if (!data.containsKey(componentName)) {
                return;
            }
            data.get(componentName).remove(key);
        }
    
    }
  • 相关阅读:
    P1383 高级打字机
    P1383 高级打字机
    P3723 [AH2017/HNOI2017]礼物 [FFT]
    P3723 [AH2017/HNOI2017]礼物 [FFT]
    P3338 [ZJOI2014]力 [FFT]
    P3338 [ZJOI2014]力 [FFT]
    P2597 [ZJOI2012]灾难
    c语言推箱子 扫雷项目
    蓝桥杯c语言基础题
    c语言的图形库
  • 原文地址:https://www.cnblogs.com/frankyou/p/9566748.html
Copyright © 2011-2022 走看看