id生成器算法设计

    原理说明
        1.每个数据库存储初始值
        2.业务获取值后修改数据库的初始值   现初始值=源初始值+数据库个数*步长  【原子操作】    
        3.业务拿到初始值后,获取的数据集合是   开始值  ~   开始值+步长
    //设置步长
    int bc=4;
    Map<String,Integer> map=new HashMap<String, Integer>();
    //设置初始值,各初始值间隔bc
    map.put("db1", 0);
    map.put("db2", 4);
    map.put("db3", 8);
    for(int i=0;i<3;i++){
        for(Iterator<String> iterator= map.keySet().iterator();iterator.hasNext();){
            StringBuffer sb=new StringBuffer();
            String key=iterator.next();
            sb.append("[").append(key).append("]");
            for(int k=map.get(key),is=map.get(key)+bc;k<is;k++){
                sb.append(k+",");
            }
            //修改下次的初始值
            int ns=map.get(key)+map.size()*bc;
            map.put(key, ns);
            System.out.println(sb.toString());
            sb.reverse();
        }
    }
上一篇:Python 进阶_生成器 & 生成器表达式


下一篇:Javascript实现Java的HashMap(链表散列)