我们如何比较两个不区分大小写的哈希图的键和值
How can we compare two hashmaps with case insensitive on both keys and values
我有两个具有相同值的映射,但大小写不同,无论是键值还是值。在断言时,我需要让它通过。我知道可以使用不区分大小写的 Treemap 选项,但它只验证键而不是值。有没有一种方法可以不考虑键值对中的大小写来比较两个映射?
map1 = { "Object" : "Java", "Scripting" : "Javascript" } // value Javascript with 's'
map1 = { "object" : "Java", "Scripting" : "JavaScript" } // key Object with 'o'
我使用 assertj-core 并且在断言这两个映射时由于大小写差异而出现错误。
可以使用AssertJ的方法usingElementComparator:
assertThat(actualMap.entrySet())
.usingElementComparator(
Map.Entry.<String, String>comparingByKey(String.CASE_INSENSITIVE_ORDER)
.thenComparing(Map.Entry::getValue, String.CASE_INSENSITIVE_ORDER)
)
.containsExactlyInAnyOrderElementsOf(expectedMap.entrySet());
我有两个具有相同值的映射,但大小写不同,无论是键值还是值。在断言时,我需要让它通过。我知道可以使用不区分大小写的 Treemap 选项,但它只验证键而不是值。有没有一种方法可以不考虑键值对中的大小写来比较两个映射?
map1 = { "Object" : "Java", "Scripting" : "Javascript" } // value Javascript with 's'
map1 = { "object" : "Java", "Scripting" : "JavaScript" } // key Object with 'o'
我使用 assertj-core 并且在断言这两个映射时由于大小写差异而出现错误。
可以使用AssertJ的方法usingElementComparator:
assertThat(actualMap.entrySet())
.usingElementComparator(
Map.Entry.<String, String>comparingByKey(String.CASE_INSENSITIVE_ORDER)
.thenComparing(Map.Entry::getValue, String.CASE_INSENSITIVE_ORDER)
)
.containsExactlyInAnyOrderElementsOf(expectedMap.entrySet());