有这样的需求:
从数据库查出key,value的结果列表,用jdbcTemplate的queryForList查出来的结果是List<Map<String,Obejct>>,然而需要的是一个key-value的map,可以如下转换:
List<Map<String, Object>> resultList = jdbcTemplate.queryForList("SELECT key, value FROM my_table");
Map<String, Object> resultMap = resultList.stream()
.collect(Collectors.toMap(
row -> (String) row.get("key"),
row -> row.get("value")
));
使用Stream API将List转换为Map,在toMap()方法中,第一个参数是key的提取函数,第二个参数是value的提取函数。