1
7
使用连接构造不同字符串的尝试将失败,因为它是在编译时执行的。这两个映射都有一对;每一对都将使用相同的字符串引用,将“foo”和“barbar”作为键/值。 假设您真的想在不引用任何键的情况下比较这些值集,那么这只是一种情况:
它是
可能的
相比之下
注意,使用集合有它自己的问题-因为上面的代码会认为{“a”:“0”,“b”:“0”}和{“c”:“0”}的映射是相等的……毕竟,值集是相等的。 如果你能给你想要的东西下一个更严格的定义,我们就更容易确保给你一个正确的答案。 |
2
35
比较映射值相等性的正确方法是:
换句话说(减去错误处理):
|
3
6
要查看两个贴图是否具有相同的值,可以执行以下操作:
类似这样的操作(尽管它的类型界限可以改进):
测试线束:
这是
参见:
测试
钥匙
平等更容易,因为他们
参见: |
4
2
所有这些都是平等的。他们实际上没有做比较,这对排序很有用。这将更像一个比较器:
|
5
2
这个问题已经过时了,但仍然有意义。 如果要通过两个映射的值与其键匹配来比较它们,可以执行以下操作:
|
6
2
既然你问过现成的API…阿帕奇的公地。集合库具有 CollectionUtils 类,该类为集合操作/检查提供易于使用的方法,例如交集、差集和并集。 |
7
1
我不认为有一个“apache common-like”工具来比较映射,因为2个映射的相等性非常模糊,取决于开发人员的需求和映射的实现…… 如果您比较Java中的两个哈希图,则为: -您可能只想比较键/值是否相同 -您可能还想比较钥匙的顺序是否相同 -您可能还想比较剩余容量是否相同 …你可以比较很多东西! 当比较两种不同的映射实现时,这样的工具会做什么: -一个映射允许空键 -map2.get上的另一个throw运行时异常(null) 你最好根据自己的实际需要来实现自己的解决方案,我想你已经得到了上面的一些答案:) |
8
1
如果假设可能存在重复值,则唯一的方法是将值放入列表中,对它们排序并比较列表,即:
如果值不能包含重复的值,则可以在不使用集合排序的情况下执行上述操作。 |
9
0
在您的示例中,equals的结果显然是错误的,因为您正在将映射a与其中的某些值与空映射b进行比较(可能是复制和粘贴错误)。我建议使用正确的变量名(这样可以避免此类错误)并使用泛型。
字符串的连接没有任何效果,因为它将在编译时完成。 |
10
0
为了比较Java中的两个MAP对象,可以将一个映射的键添加到列表中,使用这2个列表,可以使用方法RealPalm()和ReaveLay.()并将它们添加到另一个公共密钥列表和不同的密钥列表中。使用common list和different list的键可以遍历map,使用equals可以比较map。
下面的代码将给出如下输出:
在{zoo=barbar,foo=barbar}之前
在{zoo=barbar,foo=barbar}之后
相等:前-后-后-后
相等:前-后-后-后
|
11
0
|
12
-2
如果你想比较两张地图,下面的代码可以帮助你
|
synthax · 具有容差级别的双精度哈希方法 6 年前 |
Relaxsingh · 附加导师程序无法正常工作***阅读说明*** 7 年前 |
user8589267 · 我的equals方法有什么问题? 7 年前 |
James W. · 带有通配符的java黑名单 7 年前 |