0
点赞
收藏
分享

微信扫一扫

Java判断两个Map值是否一样

小猪肥 2023-11-02 阅读 54

Java判断两个Map值是否一样

1. 流程图

graph TD
A[开始] --> B[比较两个Map的大小是否相等]
B -- 是 --> C[比较两个Map的键值对是否完全相同]
C -- 是 --> D[两个Map相同]
C -- 否 --> E[两个Map不同]
B -- 否 --> E
E[结束]

2. 代码实现

2.1 比较两个Map的大小是否相等

public class MapComparison {
    public static boolean isSame(Map<?, ?> map1, Map<?, ?> map2) {
        if (map1.size() != map2.size()) { // 比较两个Map的大小是否相等
            return false;
        }
        // 继续下一步比较
    }
}

2.2 比较两个Map的键值对是否完全相同

public class MapComparison {
    public static boolean isSame(Map<?, ?> map1, Map<?, ?> map2) {
        if (map1.size() != map2.size()) {
            return false;
        }
        for (Map.Entry<?, ?> entry : map1.entrySet()) { // 遍历map1的键值对
            Object key = entry.getKey();
            Object value1 = entry.getValue();
            Object value2 = map2.get(key);
            if (value1 == null) {
                if (value2 != null || !map2.containsKey(key)) { // 检查map2是否包含相同的键
                    return false;
                }
            } else {
                if (!value1.equals(value2)) { // 比较value1和value2是否相同
                    return false;
                }
            }
        }
        // 两个Map的键值对完全相同
        return true;
    }
}

3. 使用示例

import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Map<Integer, String> map1 = new HashMap<>();
        map1.put(1, "apple");
        map1.put(2, "banana");
        map1.put(3, "orange");

        Map<Integer, String> map2 = new HashMap<>();
        map2.put(1, "apple");
        map2.put(2, "banana");
        map2.put(3, "orange");

        boolean isSame = MapComparison.isSame(map1, map2);
        System.out.println("两个Map是否相同: " + isSame);
    }
}

4. 类图

classDiagram
    Main --> MapComparison
    MapComparison --> Map.Entry
    MapComparison ..> Map
    MapComparison ..> Object
    MapComparison ..> Collection
    MapComparison ..> Iterator

以上代码实现了Java判断两个Map值是否一样的功能。首先,我们通过比较两个Map的大小来确定它们是否有相同的键值对。然后,我们遍历其中一个Map的键值对,并逐个比较对应键的值是否相等。如果两个Map的键值对完全相同,则返回true,否则返回false

在使用示例中,我们创建了两个Map对象map1map2,并向它们分别添加了相同的键值对。然后我们调用MapComparison.isSame()方法来比较这两个Map是否相同,并打印结果。

通过以上流程和代码,我们可以轻松地判断两个Map值是否一样,帮助小白理解和实现这个功能。

举报

相关推荐

0 条评论