import com.alibaba.fastjson2.JSON;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
// 1、创建 HashMap 并存储 jsonObject,不用排序,正常存储就行,因为取的时候都是无序的。
HashMap<String, String> transactionHistoryMap = new HashMap<>();
transactionHistoryMap.put(key, JSONUtil.toJsonStr(object));
// 2、从 Redis 里获取 HashMap 对象,这时候取出来是无序的。
Map<String, String> stringMap = jedis.hgetAll(redisKey);
if (CollectionUtil.isNotEmpty(stringMap)) {
// 排序方式一:这种方式如果排序的字段值相同的话会存在去重后只保留一个结果,导致结果缺少数据问题
// 对 Map<String, jsonString>排序,根据 jsonString 里的 string 字段排序
Map<String, String> sortedMap = new TreeMap<>(
(key1, key2) ->
JSON.parseObject(stringMap.get(key1)).getString("stringFiled").compareTo(JSON.parseObject(stringMap.get(key2)).getString("stringFiled")));
// 排序方式二:不会存在去重问题
Map<String, String> sortedMap = new TreeMap<>(
(key1, key2) -> {
String optTime1 = JSON.parseObject(stringMap.get(key1)).getString("optTime");
String optTime2 = JSON.parseObject(stringMap.get(key2)).getString("optTime");
int result = optTime1.compareTo(optTime2);
if (result == 0)
return 1;
else
return result;
});
sortedMap.putAll(stringMap);
注:stringFiled 要排序的字段名
对 Map<String, jsonString>排序,根据 jsonString 里的 String 字段排序
于 2024-06-27 10:41:56 首次发布