关于Map的遍历以及转JsonArray存储方式

 更新时间:2024年11月04日 10:48:37   作者:疯狂咕噜咚  
在Java开发过程中,经常会遇到需要对复杂数据结构进行处理的情况,本案例以List<Map<String,Object>>为例,介绍了如何遍历该数据结构,并根据特定条件筛选出符合要求的元素,通过自定义一个Edit类来模拟形成一个新的Map对象,实现了数据的有序存储

Map的遍历以及转JsonArray存储

案例目的将List<Map<String,Object>> 遍历,按条件取得map里面符合要求的元素

将其有序的放到自定义的一个Edit类中,模拟形成一个新的Map对象:

  • Edit类:
public class Edit {
    private String key;
    private String value;
    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}
  • 测试类:
public class Test {
    public List<Map<String,Object>> see() {
        Map<String, Object> map = new HashMap<>();
        map.put("wkx", "666");
        map.put("laq", "999");
        map.put("key", "datetime");
        map.put("value", "2000");
        Map<String, Object> map2 = new HashMap<>();
        map2.put("wkx2", "666");
        map2.put("laq2", "999");
        map2.put("key", "dateid");
        map2.put("value", "1000");
        List<Map<String, Object>> listmap = new LinkedList<>();
        listmap.add(map);
        listmap.add(map2);
        return listmap;
    }
    public static void main(String[] args) {
        Test a = new Test();
        List<Edit> edits=new LinkedList<>();
        List<List<Edit>> mapplus =new LinkedList<>();
        List list = a.see();
      for (int i=0;i<list.size();i++){
              Edit edit = new Edit();
              Map<String, Object> map = (Map) list.get(i);
              for (Map.Entry entry : map.entrySet()) {
                  if ("key".equals(entry.getKey())) {
                      edit.setKey((String)entry.getValue());
                  }
                  if ("value".equals(entry.getKey())) {
                      edit.setValue((String) entry.getValue());
                  }
              }
              if (edit.getKey()!=null&&edit.getValue()!=null) {
                  edits.add(edit);
            }
        }
        mapplus.add(edits);
        System.out.println(list.toString());
    }
}

将mapplus里面的内容全部存储到数据库中的一个字段中

 public String list2string(List<List<Edit>> list){
        //但我们得到一个全新的list<map>时,我们要把它里面所有的map(包括key和value都存到数据库中的一个字段中去)
        // 我们用到jsoAarray
        JSONArray jsonArray = new JSONArray();
        //逐渐遍历之前取得的mapplus
        list.forEach(n->{
            n.forEach(e -> {
                String key = e.getKey();
                String value = e.getValue();
            });
            jsonArray.add(n);
        });
        return JSONArray.toJSONString(jsonArray);
    }


//测试
       mapplus.add(edits);
       String ss = new SortByLetter().list2string(mapplus);
       System.out.println(ss);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java利用DFA算法实现敏感词过滤功能

    java利用DFA算法实现敏感词过滤功能

    在最近的开发中遇到了敏感词过滤,便去网上查阅了很多敏感词过滤的资料,在这里也和大家分享一下自己的理解。下面这篇文章主要给大家介绍了关于java利用DFA算法实现敏感词过滤功能的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-06-06
  • J2EE项目代码编写规范分享

    J2EE项目代码编写规范分享

    这篇文章主要介绍了J2EE项目代码编写规范分享,需要的朋友可以参考下
    2014-10-10
  • 详解MyBatis 常用写法

    详解MyBatis 常用写法

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。这篇文章给大家介绍了MyBatis 常用写法,感兴趣的朋友跟随小编一起看看吧
    2018-11-11
  • Tk.mybatis零sql语句实现动态sql查询的方法(4种)

    Tk.mybatis零sql语句实现动态sql查询的方法(4种)

    有时候,查询数据需要根据条件使用动态查询,这时候需要使用动态sql,本文主要介绍了Tk.mybatis零sql语句实现动态sql查询的方法,感兴趣的可以了解一下
    2021-12-12
  • Java面试题冲刺第二十六天--实战编程

    Java面试题冲刺第二十六天--实战编程

    这篇文章主要为大家分享了最有价值的三道java实战面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Eclipse运行android项目报错Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法

    Eclipse运行android项目报错Unable to build: the file dx.jar was not

    今天小编就为大家分享一篇关于Eclipse运行android项目报错Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 详解Java的call by value和call by reference

    详解Java的call by value和call by reference

    在本篇文章里小编给大家总结了关于Java的call by value和call by reference的相关用法和知识点内容,需要的朋友们学习下。
    2019-03-03
  • 浅谈如何在项目中使用Spring Cloud Alibaba Sentinel组件

    浅谈如何在项目中使用Spring Cloud Alibaba Sentinel组件

    随着微服务的流行,服务和服务之间的稳定性变得越来越重要。本文主要介绍了使用Spring Cloud Alibaba Sentinel组件,感兴趣的可以了解一下
    2021-07-07
  • spring cloud gateway 全局过滤器的实现

    spring cloud gateway 全局过滤器的实现

    全局过滤器作用于所有的路由,不需要单独配置,我们可以用它来实现很多统一化处理的业务需求,这篇文章主要介绍了spring cloud gateway 全局过滤器的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 深入浅出讲解Java集合之Collection接口

    深入浅出讲解Java集合之Collection接口

    这篇文章主要介绍了深入浅出讲解Java集合之Collection接口,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09

最新评论