
各位大佬,问个java基础的问题
外面定义了个map,
循环里,取每个字典的列表,tree
并把tree,放入map中,
原来是没有被我圈起来的代码,
但是,把这个MAP返回给前端时,tree里面的顺序竟然发生变化了,查的时候sql按指定字段order by 了,断点看,在放入map前顺序是正确的,但就是返回给前端后,就不行了。
最后不行就加了圈住部分的代码(n年前遇到过类似问题,就是这么解决的😂),map里不再放tree对象了,改放dictList了,问题解决了,
想问问各位大佬,这种现象作何解释。
这个问题在很早之前,刚参加工作时,遇到过一次,当初是把List转成了ArrayList解决的,但当时没追究为什么,过了几年了,又让遇到这种问题了,就想追究一下,为什么会出现这种情况,自己也写代码尝试了,重现不了

Java
Spring
Spring Boot
Link hashmap用这个
ArrayList是随机排序的,LinkedList是插入顺序的。
上述for循环也是随机抽取,HashMap的key也是随机排序的。
如若需要可自定义排序器。
加个调试输出一下,应该是程序问题,或者是前端把序列化问题
.....用linkedlist解决就好了啊
map里面的value使用object接收 应该考虑一下是不是list<Dict>转object时导致结构发生变化
然后json解析时导致顺序有可能发生变化
还有就是确认tree中的顺序就是你想要的顺序嘛
可否看一下DictCache.getList(d.getCode())方法的内部实现?
wireshark或Fiddler抓包看一下,界定一下是前端问题,还是后端问题。