Investigating a special case where some objects didn't equal as they should and came to this simple test case that simplifies my issue.

When running this with JUnit in Eclipse with jdk8u152 the last assertEquals fails, can anyone explain why?

It's something with Set/HashSet because if I change **as,bs** to be ArrayList's instead the final assertEquals goes through.

```
@Test
public void test()
{
    String list = "list";
    String object = "object";
    String value = "value";

    Map<String, Object> a = new HashMap<>();
    Map<String, Object> b = new HashMap<>();

    assertEquals(a, b);

    Set<Object> as = new HashSet<>();
    Set<Object> bs = new HashSet<>();

    a.put(list, as);
    b.put(list, bs);

    assertEquals(a, b);

    Map<String, Object> ao = new HashMap<>();
    as.add(ao);
    Map<String, Object> bo = new HashMap<>();
    bs.add(bo);

    assertEquals(a, b);

    ao.put(object, value);
    bo.put(object, value);

    assertEquals(a, b);
}

```