关于Map数据插入读取的问题

      最近在项目中插入到Map中的数据不按照顺序读出来。通过查看Java帮助文档,LinkedHashMap 可以保持插入时的顺序。

LinkedHashMap 中的accessOrder属性负责Map中数据的顺序。 accessOrder为true时,Map中的数据按照访问顺序排序, false时按照插入顺序排序,默认LinkedHashMap 按插入顺序排序。详情请参阅LinkedHashMap 注释。

     开始时这样的:Map<Mother, List<Chilldren>> motherChild = new HashMap<Mother, List<Chilldren>>();

     插入数据:

---新建流程
---代办事宜
---流程监控
---流程查询
---流程配置
-----定义表单
-----定义流程
-----流程分类
---已办事宜
---办结事宜
---流程委托
---我的请求

    遍历得到如下:

--流程配置
----定义表单
----定义流程
----流程分类
--流程查询
--我的请求
--办结事宜
--已办事宜
--流程委托
--流程监控
--代办事宜

--新建流程

遍历代码如下:


for(Entry<Mother,List<Chilldren>> entry:motherChild1.entrySet()){
   System.out.println("--"+entry.getKey().getMotherName());
   for(Chilldren ch:entry.getValue()){
    System.out.println("----"+ch.getChildName());
   }
  }

而且每次刷新都不一样,后来改成这样:

  Map<Mother, List<Chilldren>> motherChild = new LinkedHashMap<Mother, List<Chilldren>>();

  就没问题了,每次拿到的数据跟放进去的是一样的顺序。

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
插入json数据数据库可以通过以下步骤完成。首先,需要将需要插入数据转换为json格式的数组或者json对象。然后,通过遍历json数据,将需要的数据存储到一个集合数组或者map中。接下来,使用数据库操作的方法,将集合数组或者map中的数据批量插入数据库中。 例如,可以使用Java的json库,如fastjson或者Jackson,将json数据转换为json数组或者json对象。然后,通过遍历json数组或者json对象,将需要的数据存储到一个集合数组或者map中。 接下来,使用数据库操作的方法,将集合数组或者map中的数据批量插入数据库中。可以使用数据库的批量插入操作,如使用JDBC的批量插入功能或者使用ORM框架提供的批量插入方法。 具体的实现代码可以参考以下示例: ```java import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class JsonInsertExample { public static void main(String\[\] args) throws Exception { // 读取json文件 File jsonFile = new File("path/to/json/file.json"); String jsonString = FileUtils.readFileToString(jsonFile); // 将json字符串转换为json数组 JSONArray jsonArray = JSONArray.parseArray(jsonString); // 创建一个集合数组或者map来存储需要插入数据 List<Map<String, Object>> dataList = new ArrayList<>(); // 遍历json数组,将需要的数据存储到集合数组或者map中 for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); Map<String, Object> dataMap = new HashMap<>(); dataMap.put("code", jsonObject.getString("code")); dataMap.put("name", jsonObject.getString("name")); dataList.add(dataMap); } // 调用数据库操作的方法,将集合数组或者map中的数据批量插入数据库中 int result = insertBatch(dataList); System.out.println("插入了 " + result + " 条数据"); } private static int insertBatch(List<Map<String, Object>> dataList) { // 执行批量插入操作,将数据插入数据库中 // 这里需要根据具体的数据库操作方式来实现 // 返回插入数据条数 return 0; } } ``` 请注意,上述示例中的数据库操作方法`insertBatch`需要根据具体的数据库操作方式来实现。可以使用JDBC的批量插入功能或者使用ORM框架提供的批量插入方法来实现批量插入操作。 希望以上信息对您有所帮助。 #### 引用[.reference_title] - *1* *2* *3* [遍历json数据批量插入数据库](https://blog.csdn.net/T_james/article/details/81003906)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值