如何将条件检查从 C# 转换为 Java?

How to convert a condition check from C# to Java?

我正在尝试将这行代码从 C# 转换为 Java,但我很难理解它。

isEqual = !dbCertDict.Keys.Any(x => !String.Equals(dbCertDict[x], requestCertDict.ContainsKey(x) ? requestCertDict[x] : "", StringComparison.OrdinalIgnoreCase));

最初,dbCertDict 是 Dictionary<string, string> 类型,现在是 HashMap<String, String> 类型。本质上,我想在 Java 中编写一个函数,如果 dbCertDict 和 requestCertDict 中的所有项目都匹配,该函数会将 isEqual 设置为 true。如果有任何不匹配,我希望它 return false。

至少,这就是我认为这行 C# 代码所做的...感谢任何帮助!

我试图搜索与 Any() 等效的函数,但我能找到的最接近的函数是将 dbCertDict.Keys.Any 替换为 dbCertDict.keySet().contains(),但不幸的是它们并不相同。 .

isEqual = !dbCertDict.Keys.Any(x => 
!String.Equals(dbCertDict[x], requestCertDict.ContainsKey(x) ?
requestCertDict[x] : "", StringComparison.OrdinalIgnoreCase));

boolean isEqual = !dbCertDict.keySet().stream().anyMatch(x ->
dbCertDict.get(x).equalsIgnoreCase(requestCertDict.containsKey(x) ?
requestCertDict.get(x) : ""));

或类似的东西。

后者可以收紧到

boolean isEqual = dbCertDict.entrySet().stream().noneMatch(x -> 
x.getValue().equalsIgnoreCase(requestCertDict.getOrDefault(x.getKey(), "");