zoukankan      html  css  js  c++  java
  • Java 利用Map实现缓存

    一、缓存工具类

    package com.zsplat.yyzx.util;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 缓存机制
     */
    public class CacheUtil {
        private static CacheUtil cacheUtil;
        private static Map<String,Object> cacheMap;
    
        private CacheUtil(){
            cacheMap = new HashMap<String, Object>();
        }
    
        public static CacheUtil getInstance(){
            if (cacheUtil == null){
                cacheUtil = new CacheUtil();
            }
            return cacheUtil;
        }
    
        /**
         * 添加缓存
         * @param key
         * @param obj
         */
        public void addCacheData(String key,Object obj){
            cacheMap.put(key,obj);
        }
    
        /**
         * 取出缓存
         * @param key
         * @return
         */
        public Object getCacheData(String key){
            return cacheMap.get(key);
        }
    
        /**
         * 清楚缓存
         * @param key
         */
        public void removeCacheData(String key){
            cacheMap.remove(key);
        }
    }

    二、写一个定时器  定时从数据库里查出数据添加到缓存中 

      CacheUtil.getInstance().addCacheData("cacheYYZS100New", cacheMap);

    三、取出缓存

      Map<String , Object> cacheMap = (Map<String, Object>)CacheUtil.getInstance().getCacheData("cacheYYZS100New");

      存缓存和取缓存的方法,知道类型的话,强制转换都没问题

    四、分页   捋清楚startIndex和pageSize,count之前的关系就行   用截取list的方法实现分页

    if(StringUtils.isNotEmpty(startIndex)&&StringUtils.isNotEmpty(pageSize)){
                    Integer start = Integer.parseInt(startIndex);
                    Integer size = Integer.parseInt(pageSize);
                    if(size*(start+1)<resultCount){
                        dataList = dataList.subList(start*size,size*(start+1));
                    }else if(start*size<resultCount){
                        dataList = dataList.subList(start*size,resultCount);
                    }else{
                        dataList = new ArrayList<>();
                    }
                }
  • 相关阅读:
    Android View体系(七)从源码解析View的measure流程
    Android View体系(六)从源码解析Activity的构成
    Android View体系(五)从源码解析View的事件分发机制
    Android View体系(四)从源码解析Scroller
    Android常用学习网站
    Android View体系(三)属性动画
    购物车
    模块与包
    s5_day9作业
    s5_day11作业
  • 原文地址:https://www.cnblogs.com/zhou-pan/p/10141521.html
Copyright © 2011-2022 走看看