小编egn*_*ork的帖子

LinkedHashMap Java 8 的 JUnit 顺序

我需要检查两个地图的完全相等性,包括它们的顺序

@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));
    }
Run Code Online (Sandbox Code Playgroud)

所有测试均通过,控制台输出:

===expected
thebiggest
longer
first
===actual
longer
first
thebiggest
Run Code Online (Sandbox Code Playgroud)

文档中到处都写到 LinkedHashMap 保持插入顺序。那么为什么两个相同但不同的有序映射的断言给出 true 呢?如果平等顺序很重要,我应该采取什么地图?

java junit

2
推荐指数
1
解决办法
2559
查看次数

标签 统计

java ×1

junit ×1