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-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

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二