zoukankan      html  css  js  c++  java
  • 基于LRU Cache的简单缓存

    package com.test.testCache;
    
    import java.util.Map;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    import android.text.TextUtils;
    import android.util.LruCache;
    
    public class TestStore
    {
        private final static int CACHE_SIZE = 1000;
        private LruCache<String, String> mContent;
    
        public TestStore(Context context)
        {
            this(context, CACHE_SIZE);
        }
    
        public TestStore(Context context, int size)
        {
            super();
            mContent = new LruCache<String, String>(size);
            JSONArray arry = getTopicReadData(context);
            if (arry == null) {
                return;
            }
            for (int i = 0; i < arry.length(); i++) {
                String content = null;
                try {
                    content = arry.getString(i);
                } catch (JSONException e) {
                }
                if (TextUtils.isEmpty(content)) {
                    continue;
                }
                putReadData(content);
            }
        }
    
        public boolean isExsit(String key) {
            String value = mContent.get(key);
            return !TextUtils.isEmpty(value);
        }
    
        public void putReadData(String key) {
            mContent.put(key, key);
        }
    
        public void saveDataToFile(Context context) {
            JSONArray json = new JSONArray();
            Map<String, String> map = mContent.snapshot();
            for (String id : map.values()) {
                json.put(id);
            }
            saveTopicReadData(context, json);
        }
    
        public JSONArray getTopicReadData(Context context) {
            SharedPreferences preferences = getSharedPreferences(context);
            String content = preferences.getString(STORE_KEY_TOPIC_READDATA, null);
            JSONArray array = null;
            try {
                array = new JSONArray(content);
            } catch (Exception e) {
            }
            return array;
        }
    
        private void saveTopicReadData(Context context, JSONArray array) {
            Editor edit = getSharedPreferencesEditor(context);
            edit.putString(STORE_KEY_TOPIC_READDATA, array.toString());
            edit.commit();
        }
    
        // =======================================
        private final static String STORE_NAME = "1111";
        private final static String STORE_KEY_TOPIC_READDATA = "22222";
    
        private SharedPreferences getSharedPreferences(Context context) {
            return context.getSharedPreferences(STORE_NAME, 0);
        }
    
        private Editor getSharedPreferencesEditor(Context context) {
            return getSharedPreferences(context).edit();
        }
    }
  • 相关阅读:
    SQL Server设置登录验证模式
    怎样更改SQL Server 2008的身份验证方式
    sqlserver服务器名称改成本地IP地址登录
    零基础学python-2.2 输入 input()
    零基础学python-2.1 输出 print()
    零基础学python-1.7 第二个程序 猜数字小游戏
    零基础学python-1.6 错误的程序
    零基础学python-1.5 第一个程序
    零基础学python-1.4 hello world
    零基础学python-1.3 通过idle启动python
  • 原文地址:https://www.cnblogs.com/lchd/p/4218593.html
Copyright © 2011-2022 走看看