springboot map遍历
时间: 2023-11-27 19:48:12 浏览: 93
在Spring Boot中,我们可以使用Java中的for-each循环或者Lambda表达式来遍历Map。以下是两种不同的方法:
1.使用for-each循环遍历Map:
```java
Map<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
// 遍历Map
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + " : " + value);
}
```
2.使用Lambda表达式遍历Map:
```java
Map<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
// 遍历Map
map.forEach((key, value) -> {
System.out.println(key + " : " + value);
});
```
相关问题
springboot 循环遍历map
在 Spring Boot 中,遍历 Map 可以使用 Java 8 的 Stream API 或者传统的迭代方式。下面给出两种常见的方法:
1. 使用 Java 8 的 Stream API:
```java
Map<String, Object> map = new HashMap<>();
// 遍历 Map 键值对
map.forEach((key, value) -> {
System.out.println("Key: " + key + ", Value: " + value);
});
// 遍历 Map 键
map.keySet().forEach(key -> {
System.out.println("Key: " + key);
});
// 遍历 Map 值
map.values().forEach(value -> {
System.out.println("Value: " + value);
});
```
2. 使用传统的迭代方式:
```java
Map<String, Object> map = new HashMap<>();
// 遍历 Map 键值对
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
System.out.println("Key: " + key + ", Value: " + value);
}
// 遍历 Map 键
for (String key : map.keySet()) {
System.out.println("Key: " + key);
}
// 遍历 Map 值
for (Object value : map.values()) {
System.out.println("Value: " + value);
}
```
以上两种方法都可以用于循环遍历 Map 中的键值对、键或者值。你可以根据具体需求选择合适的遍历方式。
redisTemplate.opsForHash().entries("stars")利用springboot如何遍历写入MySQL
首先,需要获取RedisTemplate实例,可以在配置文件中进行配置:
```
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setDefaultSerializer(new JdkSerializationRedisSerializer());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
return redisTemplate;
}
}
```
然后定义一个服务类,用来处理Redis操作:
```
@Service
public class RedisService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public Map<Object, Object> getHash(String key) {
return redisTemplate.opsForHash().entries(key);
}
}
```
接着,定义一个DAO类,用来将Redis中的数据写入MySQL:
```
@Repository
public class StarDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public void save(Map<Object, Object> map) {
String sql = "insert into stars(name, age, gender) values(?,?,?)";
for (Map.Entry<Object, Object> entry : map.entrySet()) {
HashMap<String, Object> star = (HashMap<String, Object>) entry.getValue();
jdbcTemplate.update(sql, star.get("name"), star.get("age"), star.get("gender"));
}
}
}
```
最后,在Controller中调用RedisService获取Redis中的数据,并将数据传递给DAO进行存储:
```
@RestController
public class StarController {
@Autowired
private RedisService redisService;
@Autowired
private StarDao starDao;
@GetMapping("/save-to-mysql")
public String saveToMysql() {
Map<Object, Object> map = redisService.getHash("stars");
starDao.save(map);
return "Success";
}
}
```
这样就可以成功将Redis中的数据写入到MySQL中。
阅读全文