可以使用Java 8的流(Stream)来将List转换成Map<String, pod>,代码如下:

Map<String, pod> podMap = podList.stream()
        .collect(Collectors.toMap(pod::getResourceId, Function.identity()));

这里使用了静态方法Collectors.toMap,它的第一个参数是key的提取函数,第二个参数是value的提取函数,这里使用了Function.identity()来返回对象本身作为value。

将Map<String, pod>存入Redis可以使用RedisTemplate的opsForHash()方法,代码如下:

redisTemplate.opsForHash().putAll("pod", podMap);

这里将Map<String, pod>存储在名为"pod"的Redis哈希表中。

从Redis中取出Map<String, pod>时,需要使用opsForHash()方法的entries()values()来获取所有的键值对或值,代码如下:

Map<Object, Object> podEntries = redisTemplate.opsForHash().entries("pod");
Map<String, pod> podMap = podEntries.entrySet().stream()
        .collect(Collectors.toMap(e -> String.valueOf(e.getKey()), e -> (pod) e.getValue()));

这里使用了entrySet()方法将所有的哈希表键值对转换成集合,然后使用流(Stream)将其转换成Map<String, pod>,这里需要将值强制转换成pod类型。注意,这里需要将键的类型转换为String,否则会报类型转换错误

怎么把对象Listpod变成MapStringpodkey为pod对象的字段resourceIdvalue为对应的pod对象然后再把MapStringpod存入redis里面再取出来存入的时候怎么才能不报错pod类型强行转换为string

原文地址: http://www.cveoy.top/t/topic/g8Jt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录