你可以通过以下代码来判断两个 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
的操作。