SharedPreferences存储 list map

2024-09-03 18:32

本文主要是介绍SharedPreferences存储 list map,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1通过SharedPreferences将List<Map<String, String>>进行存储

保存数据

public void saveInfo(Context context, String key, List<Map<String, String>> datas) {JSONArray mJsonArray = new JSONArray();for (int i = 0; i < datas.size(); i++) {Map<String, String> itemMap = datas.get(i);Iterator<Entry<String, String>> iterator = itemMap.entrySet().iterator();JSONObject object = new JSONObject();while (iterator.hasNext()) {Entry<String, String> entry = iterator.next();try {object.put(entry.getKey(), entry.getValue());} catch (JSONException e) {e.printStackTrace();}}mJsonArray.put(object);}SharedPreferences sp = context.getSharedPreferences("finals", Context.MODE_PRIVATE);Editor editor = sp.edit();editor.putString(key, mJsonArray.toString());editor.commit();}


2 取数据

public List<Map<String, String>> getInfo(Context context, String key) {List<Map<String, String>> datas = new ArrayList<Map<String, String>>();SharedPreferences sp = context.getSharedPreferences("finals", Context.MODE_PRIVATE);String result = sp.getString(key, "");try {JSONArray array = new JSONArray(result);for (int i = 0; i < array.length(); i++) {JSONObject itemObject = array.getJSONObject(i);Map<String, String> itemMap = new HashMap<String, String>();JSONArray names = itemObject.names();if (names != null) {for (int j = 0; j < names.length(); j++) {String name = names.getString(j);String value = itemObject.getString(name);itemMap.put(name, value);}}datas.add(itemMap);}} catch (JSONException e) {e.printStackTrace();}return datas;}

2通过SharedPreferences将Map<String, String>进行存储

1 先保存成json

public static JSONObject getMaptojson(Map<String, String> map) {Map<String, String> params = new HashMap<String, String>();JSONObject json = new JSONObject();try {Iterator iter = map.entrySet().iterator();while (iter.hasNext()) {Map.Entry entry = (Map.Entry) iter.next();Object key = entry.getKey().toString();Object val = entry.getValue().toString();json.put((String) key, val);}} catch (Exception e) {e.printStackTrace();}return json;}
 public static Map<String, String> gettojsontoMap(String json) {Map maps = (Map) JSON.parse(json + "");return maps;}
3通过SharedPreferences将List<String>进行存储
/** * 存储List<String> */  public static void putStrListValue(Context context, String key,  List<String> strList) {  if (null == strList) {  return;  }  // 保存之前先清理已经存在的数据,保证数据的唯一性  removeStrList(context, key);  int size = strList.size();  putIntValue(context, key + "size", size);  for (int i = 0; i < size; i++) {  putStringValue(context, key + i, strList.get(i));  }  }  /** * 取出List<String> */  public static List<String> getStrListValue(Context context, String key) {  List<String> strList = new ArrayList<String>();  int size = getIntValue(context, key + "size", 0);  //Log.d("sp", "" + size);  for (int i = 0; i < size; i++) {  strList.add(getStringValue(context, key + i, null));  }  return strList;  } 

这篇关于SharedPreferences存储 list map的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133714

相关文章

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI