嗨请在我的情景中找到,
我有两个map键作为字符串,值为boolean。 键也一样,也是顺序。但价值可能会改变。
我需要比较两张地图,如果所有键的值都有变化,那么我应该停止。
如何做这个比较?
Map <String,Boolean> map1 = new TreeMap<String,Boolean>();
map1.put("String1", true);
map1.put("String2", true);
map2的可能性
1。值与map1中的值相同。不应该停止
Map <String,Boolean> map2 = new TreeMap<String,Boolean>();
map1.put("String1", true);
map1.put("String2", true);
2。与map1相比,一个值[String2]发生了变化。不应该停止
Map <String,Boolean> map2 = new TreeMap<String,Boolean>();
map1.put("String1", true);
map1.put("String2", false);
第3。与map1相比,这两个值都发生了变化。应该在这里停止
Map <String,Boolean> map2 = new TreeMap<String,Boolean>();
map1.put("String1", false);
map1.put("String2", false);
抱歉,我是新人,所以我发表评论作为回复。
我计划迭代地图并进行检查。在此之前,只想检查是否有任何其他巧妙的方法来实现这一点。
答案 0 :(得分:0)
考虑两个地图都没有确切的密钥
public static void main(String[] args)
{
Map map1 = new TreeMap();
map1.put("String1", true);
map1.put("String2", true);
Map map2 = new TreeMap();
map2.put("String1", false);
map2.put("String2", false);
Set keys = map1.keySet();
boolean stop = true;
for (Iterator i = keys.iterator(); i.hasNext();)
{
String key = (String) i.next();
boolean value1 = (boolean) map1.get(key);
boolean value2 = (boolean) map2.get(key);
if (value1 == value2)
{
stop = false;
break;
}
}
if (stop)
System.out.println("All values are different");
}
答案 1 :(得分:0)
行。你有使用循环的答案,IMO都可以完善,而且有点过于复杂。所以我会提供我的:
var s = "abcdwq'xx'x";
console.log(s.replace(/'/g, "\\'"));
这个答案