Hướng dẫn how to check if two hashmaps are equal python - cách kiểm tra xem hai hashmap có bằng python không

Làm thế nào tôi có thể so sánh tốt nhất hai HashMap, nếu tôi muốn tìm hiểu xem không ai trong số chúng chứa các khóa khác với cái kia và nếu các giá trị của các phím đó khớp với nhau.

Map mapA = new HashMap();
mapA.put("A", "1");
mapA.put("B", "2");

Map mapB = new HashMap();
mapB.put("D", "4");
mapB.put("A", "1");

Khi so sánh A với B, nó sẽ thất bại do các khóa B và D. khác nhau

Làm thế nào tôi có thể so sánh tốt nhất các hashmap không phân loại?

Hướng dẫn how to check if two hashmaps are equal python - cách kiểm tra xem hai hashmap có bằng python không

Neo

Phim huy hiệu bạc 17111 silver badge11 bronze badges

Đã hỏi ngày 7 tháng 1 năm 2014 lúc 10:26Jan 7, 2014 at 10:26

Hướng dẫn how to check if two hashmaps are equal python - cách kiểm tra xem hai hashmap có bằng python không

Thành viênmembersound

77.1K175 Huy hiệu vàng543 Huy hiệu bạc1043 Huy hiệu Đồng175 gold badges543 silver badges1043 bronze badges

Đơn giản chỉ cần sử dụng:

mapA.equals(mapB);

So sánh đối tượng được chỉ định với bản đồ này cho sự bình đẳng. Trả về đúng nếu đối tượng đã cho cũng là bản đồ và hai bản đồ đại diện cho cùng một ánh xạsame mappings

Đã trả lời ngày 7 tháng 1 năm 2014 lúc 10:32Jan 7, 2014 at 10:32

user2336315user2336315user2336315

15.3k10 Huy hiệu vàng42 Huy hiệu bạc64 Huy hiệu đồng10 gold badges42 silver badges64 bronze badges

5

Thực hiện kiểm tra equals trên keySet() của cả hai HashMap.

NOTE:

Nếu

public boolean mapsAreEqual(Map mapA, Map mapB) {

    try{
        for (String k : mapB.keySet())
        {
            if (!mapA.get(k).equals(mapB.get(k))) {
                return false;
            }
        } 
        for (String y : mapA.keySet())
        {
            if (!mapB.containsKey(y)) {
                return false;
            }
        } 
    } catch (NullPointerException np) {
        return false;
    }
    return true;
}
0 của bạn chứa các phím
public boolean mapsAreEqual(Map mapA, Map mapB) {

    try{
        for (String k : mapB.keySet())
        {
            if (!mapA.get(k).equals(mapB.get(k))) {
                return false;
            }
        } 
        for (String y : mapA.keySet())
        {
            if (!mapB.containsKey(y)) {
                return false;
            }
        } 
    } catch (NullPointerException np) {
        return false;
    }
    return true;
}
1 thì không có vấn đề gì, nhưng nếu bản đồ của bạn chứa các phím loại
public boolean mapsAreEqual(Map mapA, Map mapB) {

    try{
        for (String k : mapB.keySet())
        {
            if (!mapA.get(k).equals(mapB.get(k))) {
                return false;
            }
        } 
        for (String y : mapA.keySet())
        {
            if (!mapB.containsKey(y)) {
                return false;
            }
        } 
    } catch (NullPointerException np) {
        return false;
    }
    return true;
}
2 thì bạn cần đảm bảo rằng lớp
public boolean mapsAreEqual(Map mapA, Map mapB) {

    try{
        for (String k : mapB.keySet())
        {
            if (!mapA.get(k).equals(mapB.get(k))) {
                return false;
            }
        } 
        for (String y : mapA.keySet())
        {
            if (!mapB.containsKey(y)) {
                return false;
            }
        } 
    } catch (NullPointerException np) {
        return false;
    }
    return true;
}
2 của bạn thực hiện
public boolean mapsAreEqual(Map mapA, Map mapB) {

    try{
        for (String k : mapB.keySet())
        {
            if (!mapA.get(k).equals(mapB.get(k))) {
                return false;
            }
        } 
        for (String y : mapA.keySet())
        {
            if (!mapB.containsKey(y)) {
                return false;
            }
        } 
    } catch (NullPointerException np) {
        return false;
    }
    return true;
}
4.

Đã trả lời ngày 7 tháng 1 năm 2014 lúc 10:28Jan 7, 2014 at 10:28

Narendra Pathainarendra PathaiNarendra Pathai

40.5K18 Huy hiệu vàng80 Huy hiệu bạc120 Huy hiệu đồng18 gold badges80 silver badges120 bronze badges

2

So sánh mọi khóa trong MAPB với đối tác trong MAPA. Sau đó kiểm tra xem có bất kỳ khóa nào trong MAPA không tồn tại trong MAPB

public boolean mapsAreEqual(Map mapA, Map mapB) {

    try{
        for (String k : mapB.keySet())
        {
            if (!mapA.get(k).equals(mapB.get(k))) {
                return false;
            }
        } 
        for (String y : mapA.keySet())
        {
            if (!mapB.containsKey(y)) {
                return false;
            }
        } 
    } catch (NullPointerException np) {
        return false;
    }
    return true;
}

Đã trả lời ngày 9 tháng 11 năm 2014 lúc 17:04Nov 9, 2014 at 17:04

Hướng dẫn how to check if two hashmaps are equal python - cách kiểm tra xem hai hashmap có bằng python không

1

/* JAVA 8 using streams*/
   public static void main(String args[])
    {
        Map map = new HashMap();
        map.put(100, true);
        map.put(1011, false);
        map.put(1022, false);

        Map map1 = new HashMap();
        map1.put(100, false);
        map1.put(101, false);
        map1.put(102, false);

        boolean b = map.entrySet().stream().filter(value -> map1.entrySet().stream().anyMatch(value1 -> (value1.getKey() == value.getKey() && value1.getValue() == value.getValue()))).findAny().isPresent();
        System.out.println(b);
    }

Đã trả lời ngày 31 tháng 1 năm 2018 lúc 4:22Jan 31, 2018 at 4:22

public boolean compareMap(Map map1, Map map2) {

    if (map1 == null || map2 == null)
        return false;

    for (String ch2 : map1.keySet()) {
        if (!map1.get(ch2).equalsIgnoreCase(map2.get(ch2)))
            return false;

    }
    for (String ch2 : map2.keySet()) {
        if (!map2.get(ch2).equalsIgnoreCase(map1.get(ch2)))
            return false;

    }

    return true;
}

Đã trả lời ngày 14 tháng 3 năm 2016 lúc 6:29Mar 14, 2016 at 6:29

SanasanaSanA

1191 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges

Nếu bạn có hai bản đồ, hãy nói MAP1 và MAP2 sau đó sử dụng các luồng Java8, chúng ta có thể so sánh các bản đồ bằng mã bên dưới.

boolean b = map1.entrySet().stream().filter(value -> 
            map2.entrySet().stream().anyMatch(value1 -> 
            (value1.getKey().equals(value.getKey()) && 
  value1.getValue().equals(value.getValue())))).findAny().isPresent();   


System.out.println("comparison  "+b);

Đã trả lời ngày 30 tháng 11 năm 2018 lúc 4:59Nov 30, 2018 at 4:59

SwatiswatiSwati

Phù hiệu bằng đồng 1144 bronze badges

Hashmap có sử dụng bằng nhau không?

Hashmap sử dụng bằng () để so sánh khóa với việc chúng có bằng hay không.Nếu phương thức bằng () trả về true, chúng không bằng nhau.Một nhóm duy nhất có thể có nhiều hơn một nút, nó phụ thuộc vào phương thức HashCode ().. If the equals() method return true, they are equal otherwise not equal. A single bucket can have more than one node, it depends on the hashCode() method.

Hashmap có thể có bản sao không?

Hashmap là một triển khai giao diện bản đồ, ánh xạ một khóa để giá trị.Các khóa trùng lặp không được phép trong bản đồ.Duplicate keys are not allowed in a Map.

Hashmap có thể có hai giá trị có cùng khóa không?

Trong những trường hợp này, chúng ta có thể sử dụng các bộ sưu tập như danh sách, đặt, v.v. để chèn nhiều giá trị vào cùng một khóa trong HashMap.use Collections such as list, set, etc. to insert multiple values into the same key in HashMap.

Bản đồ có thể có cùng giá trị không?

Bản đồ không hỗ trợ các khóa trùng lặp.Bạn có thể sử dụng bộ sưu tập làm giá trị so với cùng một khóa.Bởi vì nếu bản đồ trước đây chứa ánh xạ cho khóa, giá trị cũ được thay thế bằng giá trị được chỉ định.. you can use collection as value against same key. Because if the map previously contained a mapping for the key, the old value is replaced by the specified value.