你可以通过以下代码来判断两个 Map 的键是否完全一致,并且键对应的值是否一致:

import java.util.Map;

public class MapComparer {
    public static <K, V> boolean areMapsEqual(Map<K, V> map1, Map<K, V> map2) {
        if (map1.size() != map2.size()) {
            return false;
        }

        for (K key : map1.keySet()) {
            if (!map2.containsKey(key)) {
                return false;
            }
            if (!map1.get(key).equals(map2.get(key))) {
                return false;
            }
        }

        return true;
    }

    public static void main(String[] args) {
        // 示例代码
        Map<String, Integer> map1 = Map.of("a", 1, "b", 2);
        Map<String, Integer> map2 = Map.of("a", 1, "b", 2);
        Map<String, Integer> map3 = Map.of("a", 1, "b", 3);

        System.out.println(areMapsEqual(map1, map2)); // true
        System.out.println(areMapsEqual(map1, map3)); // false
    }
}

这段代码首先检查两个 Map 的大小是否相等。如果大小相等,它会遍历 map1 的键,检查 map2 是否包含这些键,以及它们对应的值是否相等。

Hutool 也可以用来比较两个 Map。你可以使用 MapUtil 类的 isEqual 方法来实现这一功能:

import cn.hutool.core.map.MapUtil;
import java.util.Map;

public class MapComparer {
    public static <K, V> boolean areMapsEqual(Map<K, V> map1, Map<K, V> map2) {
        return MapUtil.isEqual(map1, map2);
    }

    public static void main(String[] args) {
        // 示例代码
        Map<String, Integer> map1 = Map.of("a", 1, "b", 2);
        Map<String, Integer> map2 = Map.of("a", 1, "b", 2);
        Map<String, Integer> map3 = Map.of("a", 1, "b", 3);

        System.out.println(areMapsEqual(map1, map2)); // true
        System.out.println(areMapsEqual(map1, map3)); // false
    }
}

Hutool 的 MapUtil 提供了便利的工具方法来简化 Map 的操作。