java 多层map 递归判断是否存在create_time,如果存在create_time,就把create_time赋值为0
时间: 2023-09-09 18:14:35 浏览: 85
递归法(java)
可以使用递归来判断多层Map中是否存在create_time属性,并将其赋值为0,具体代码如下:
```java
public static void replaceCreateTime(Map<String, Object> map) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
Object value = entry.getValue();
// 如果value是Map类型,则递归调用replaceCreateTime方法
if (value instanceof Map) {
replaceCreateTime((Map<String, Object>) value);
} else if (entry.getKey().equals("create_time")) {
map.put(entry.getKey(), 0);
}
}
}
```
以上代码中,我们首先遍历Map中的每一个键值对,如果对应的值是一个Map类型,则递归调用replaceCreateTime方法来查找是否存在create_time属性,并将其赋值为0。如果对应的值不是Map类型,我们判断该键是否为create_time,如果是,则将其赋值为0。
使用方法如下:
```java
Map<String, Object> map = new HashMap<>();
map.put("key1", "value1");
Map<String, Object> innerMap = new HashMap<>();
innerMap.put("key2", "value2");
innerMap.put("create_time", "2021-07-01 10:00:00");
map.put("key3", innerMap);
replaceCreateTime(map);
System.out.println(map);
```
以上代码中,我们创建一个多层Map,然后调用replaceCreateTime方法来将其中的create_time属性赋值为0。最后输出修改后的Map。
需要注意的是,如果多层Map中存在多个create_time属性,以上代码会将所有的create_time属性都赋值为0。如果需要只修改第一个create_time属性,可以在赋值完成后,使用break语句跳出循环。
阅读全文