Java Map是否有序?

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/amoscn/article/details/83314716

| 背景

在调用接口A的时候,传给接口A的参数是通过调用接口B返回然后再重新封装的。接口A是需要验签,也就是说传给接口A的所有参数一定要是按照接口B返回的固有顺序。问题出现了!!! 接口B返回的字段是数组类型 ClassX[] , 传给接口A的字段是JSON字符串。我将数组ClassX[] 遍历,然后把key,value重新传入了一个Map,而这个Map 是 new HashMap产生的。最后调用接口A返回结果一直是验签失败!

| 原因

说来惭愧,基础太差!!HashMap是无序的

map只是一个接口,他的实现类中
HashMap是无序的(只是说不是你插入时的顺序);
LinkedHashMap是有序的(按你插入的顺序);
TreeMap 是按key排序的;
HashMap 类基本上等同于 Hashtable, 区别仅仅在于: HashMap 不是同步的,并且运行 null 值.。

将Map改为new LinkedHashMap后,问题解决!!!

猜你喜欢

转载自blog.csdn.net/amoscn/article/details/83314716