问题描述
工作中遇到需要将Hashmap中的键值对拼成字符串,作为Redis缓存中的key,然后发现缓存经常无效。
原因
Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的,这样会导致按照顺序读取的时候和存入的顺序是不一样的。
解决方法
1、对于固定的hashmap,手动取出
2、通过有序的 Key 获取相应的数据
3、用HashMap的子类 LinkedHashMap
4、用TreeMap