【发布时间】:2016-10-27 14:33:11
【问题描述】:
我需要检查两张地图是否完全相等,包括它们的顺序
@Test
public void test(){
Map<String, Integer> actual = new LinkedHashMap<>();
actual.put("longer", 1);
actual.put("first", 1);
actual.put("thebiggest", 1);
Map<String, Integer> expected = new LinkedHashMap<>();
expected.put("thebiggest", 1);
expected.put("longer", 1);
expected.put("first", 1);
System.out.println("===expected");
expected.entrySet().stream().forEach(n->System.out.println(n.getKey()));
System.out.println("===actual");
actual.entrySet().stream().forEach(n->System.out.println(n.getKey()));
assertEquals(expected, actual);
assertTrue(expected.equals(actual));
}
所有测试都通过,在控制台输出:
===expected
thebiggest
longer
first
===actual
longer
first
thebiggest
文档中到处都写着 LinkedHashMap 保持插入顺序。为什么两个相同但不同的有序映射的断言是真的? 如果平等的顺序很重要,我应该采取什么地图?
【问题讨论】:
-
保持插入顺序进行迭代***.