不同List中的值放入对象的方法实例

本文介绍两种从List中提取数据的方法:一种是从List中获取二维数组并将其填充到DisplayBean对象中;另一种是从List中获取HashMap,并从中提取数据填充到同一对象中。这两种方法适用于不同的数据结构,有助于更好地管理和使用数据。

一种为

List的取值,返回一个list,把list的值放到一个对象displayBean里,list的值为二维数组如{CATEGORYCODE=1170, CATEGORYNAME=別2-42 麻薬},把CATEGORYCODE与CATEGORYNAME
放到数组里,然后set到对象里。
DisplayBean displayBean = new DisplayBean();
//返回的list
List result = displayTabDAO.queryDisplay(g);     
  for (int i=0;i<result.size();i++) {
         System.out.println("#########################"+result.size());
         System.out.println(result.get(i).getClass());
         String[] vo = (String[]) result.get(i);
//set到对象
         displayBean.setCategoryCode(vo[0]);
         displayBean.setCategoryName(vo[1]);
        System.out.println("%%%%%%%%%%%%%%T"+displayBean.getCategoryCode());
            System.out.println("%%%%%%%%%%%%%%T"+displayBean.getCategoryName());
        }

另一种为

返回类型list中存的是HashMap类型,将map中的值取出放到对象里。
//返回list
 List result = displayTabDAO.queryDisplay(g);
//对象
  DisplayBean displayBean = new DisplayBean();
  for(int i=0;i<result.size();i++){           
         Map<String,String> vo = (Map<String, String>) result.get(i);
         System.out.println(vo.keySet().iterator().next());
         vo.keySet().iterator().hasNext();
         System.out.println(vo.keySet().iterator().next());
         System.out.println("###"+vo.get("CATEGORYCODE"));
         System.out.println("###"+vo.get("CATEGORYNAME"));
            displayBean.setCategoryCode(vo.get("CATEGORYCODE"));
            displayBean.setCategoryName(vo.get("CATEGORYNAME"));
         System.out.println(displayBean.getCategoryCode());
         System.out.println(displayBean.getCategoryName());
        } 

在使用 `RedisTemplate` 存储一个键对应一个列表对象时,可以通过 `ListOperations` 操作 Redis 的列表类型。`RedisTemplate` 提供了 `opsForList()` 方法来获取 `ListOperations` 实例,从而进行列表相关的操作。 以下是一个示例代码,展示如何使用 `RedisTemplate` 将一个列表对象存储到 Redis 中: ```java import org.springframework.data.redis.core.ListOperations; import org.springframework.data.redis.core.RedisTemplate; import java.util.Arrays; import java.util.List; public class RedisListExample { private final RedisTemplate<String, Object> redisTemplate; public RedisListExample(RedisTemplate<String, Object> redisTemplate) { this.redisTemplate = redisTemplate; } public void storeListInRedis() { // 获取 ListOperations 实例 ListOperations<String, Object> listOps = redisTemplate.opsForList(); // 创建一个列表对象 List<String> fruits = Arrays.asList("apple", "banana", "orange"); // 将列表存储到 Redis 中,键为 "fruits" listOps.rightPushAll("fruits", fruits.toArray()); // 可选:设置键的过期时间 // redisTemplate.expire("fruits", 60, TimeUnit.SECONDS); } public List<Object> retrieveListFromRedis() { // 获取 ListOperations 实例 ListOperations<String, Object> listOps = redisTemplate.opsForList(); // 从 Redis 中获取键为 "fruits" 的列表 return listOps.range("fruits", 0, -1); } } ``` ### 代码说明: 1. **`ListOperations<String, Object> listOps = redisTemplate.opsForList();`** 通过 `redisTemplate.opsForList()` 方法获取 `ListOperations` 实例,用于操作 Redis 的列表类型。 2. **`listOps.rightPushAll("fruits", fruits.toArray());`** 使用 `rightPushAll` 方法将整个列表一次性推送到 Redis 中。键为 `"fruits"`,为 `fruits` 列表中的元素。 3. **`listOps.range("fruits", 0, -1);`** 使用 `range` 方法从 Redis 中获取键为 `"fruits"` 的列表,`0` 表示起始索引,`-1` 表示结束索引(即获取整个列表)。 4. **可选:设置键的过期时间** 如果需要为键设置过期时间,可以使用 `redisTemplate.expire()` 方法。 ### 注意事项: - **序列化配置**:确保 `RedisTemplate` 的序列化配置正确。默认情况下,`RedisTemplate` 使用 `JdkSerializationRedisSerializer` 进行序列化,这可能会导致键在 Redis 中存储为二进制格式。为了更直观地查看数据,建议将 `RedisTemplate` 的键和的序列化方式配置为 `StringRedisSerializer`。 示例配置: ```java import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.data.redis.core.RedisTemplate; // 配置 RedisTemplate 的序列化方式 redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new StringRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(new StringRedisSerializer()); ``` - **数据类型匹配**:如果存储的列表对象是复杂对象(如自定义类),需要确保这些对象实现了 `Serializable` 接口,并且 `RedisTemplate` 的序列化方式能够正确处理这些对象。 通过上述代码,可以轻松地使用 `RedisTemplate` 在 Redis 中存储和检索一个列表对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值