MapUtil增加flatten方法(pr#1368@Gitee)

This commit is contained in:
Looly
2025-07-30 19:14:23 +08:00
parent 4dcbc74cd1
commit 59f33fd12d

View File

@@ -1549,9 +1549,10 @@ public class MapUtil {
* 将多层级Map处理为一个层级Map类型
*
* @param map 入参Map
* @param <K> 键类型
* @param <V> 值类型
* @return 单层级Map返回值
* @param <K> 键类型
* @param <V> 值类型
* @since 5.8.40
*/
public static <K, V> Map<K, V> flatten(final Map<K, V> map) {
return flatten(map, new HashMap<>());
@@ -1565,17 +1566,19 @@ public class MapUtil {
* @param <K> 键类型
* @param <V> 值类型
* @return 单层级Map返回值
* @since 5.8.40
*/
@SuppressWarnings("unchecked")
public static <K, V> Map<K, V> flatten(final Map<K, V> map, Map<K, V> flatMap) {
Assert.notNull(map);
if(null == flatMap){
if (null == flatMap) {
flatMap = new HashMap<>();
}
Map<K, V> finalFlatMap = flatMap;
map.forEach((k, v) -> {
if (v instanceof Map) {
// 避免嵌套循环
if (v instanceof Map && v != map) {
flatten((Map<K, V>) v, finalFlatMap);
} else {
finalFlatMap.put(k, v);