您尝试使用串联构造不同的字符串将失败,因为它是在编译时执行的。这些地图都有一对。每对将使用相同的字符串引用将“ foo”和“ barbar”作为键/值。
假设您确实要比较值集而不需要任何键的引用,则只是以下一种情况:
Set<String> values1 = new HashSet<>(map1.values());Set<String> values2 = new HashSet<>(map2.values());boolean equal = values1.equals(values2);
这 可能 是比较
map1.values()有
map2.values()将工作-
但它也有可能是在他们返回的顺序将在平等的比较,这是不是你想要的使用。
请注意,使用集合有其自身的问题-因为上述代码会将{“ a”:“ 0”,“ b”:“ 0”}和{“ c”:“ 0”}的映射视为相等。毕竟,值集是相等的。
如果您可以提供更严格的定义,那么确保我们给您正确的答案会更加容易。



