JAVA中使用map如何不改变原来顺序

原文链接:https://www.longkui.site/program/java/java%e4%b8%ad%e4%bd%bf%e7%94%a8map%e5%a6%82%e4%bd%95%e4%b8%8d%e6%94%b9%e5%8f%98%e5%8e%9f%e6%9d%a5%e9%a1%ba%e5%ba%8f/4793/

0.背景

后台返回数据的时候,发现根据数据库预定义好的字段排序被改变了,于是顺着代码逻辑找下去,发现了下面这样一段代码:

JSONArray jsonArray = new JSONArray();
for (Map.Entry<String, JSONObject> entry : map.entrySet()) {
  jsonArray.add(entry.getValue());
}

后台代码使用了map,它会改变原来的顺序,问题就出在这里。

解决办法也很简单,我们顺着代码找,找到上方map的定义

 Map<String, JSONObject> map = new HashMap<>();
使用LinkedHashMap定义即可。
    Map<String, JSONObject> map = new LinkedHashMap<>();
 

posted on 2023-10-09 09:22  longkui  阅读(392)  评论(0编辑  收藏  举报

导航